MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_file_throwing_utility.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_FILE_THROWING_UTILITY_H_1612509728
12#define INCGUARD_MGL_FILE_THROWING_UTILITY_H_1612509728
13
15
16namespace MGL::File
17{
20{
21public:
22 [[nodiscard]] size_t GetSize(const PathView &path);
23 void MakeDirectory(const PathView &path);
24 void Move(const PathView &sourcePath, const PathView &destPath);
25 void Remove(const PathView &path);
26 void Copy(const PathView &sourcePath, const PathView &destPath);
27 [[nodiscard]] bool Exists(const PathView &path);
28 [[nodiscard]] bool IsSystemNativeFile(const PathView &path);
29 void Mount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey = Mounter::kDefaultDelegateKey);
30 void Unmount(const PathView &mountName);
31 void Remount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey = Mounter::kDefaultDelegateKey);
32 [[nodiscard]] static bool IsMounted(const PathView &mountName) noexcept;
33 [[nodiscard]] STL::string GetSystemNativePath(const PathView &path);
35 static void SetDefaultDelegate(DelegateKey key) noexcept;
36
37 /* ------------------------------------------------------------------------- */
45 /* ------------------------------------------------------------------------- */
46 template <class DelegateClass, class... Args>
47 constexpr void AddDelegate(DelegateKey key, Args... args)
48 {
49 _result = Mounter::GetInstance().AddDelegate(key, STL::make_shared<DelegateClass>(args...));
50 if (_result.HasError())
51 {
52 throw _result;
53 }
54 }
55
56private:
57 Result _result;
58};
59} // namespace MGL::File
60#endif // INCGUARD_MGL_FILE_THROWING_UTILITY_H_1612509728
61
62// vim: et ts=4 sw=4 sts=4
static constexpr DelegateKey kDefaultDelegateKey
デフォルトを表す予約デリゲートキー
Definition mgl_file_mounter.h:43
文字列の参照のみを行うファイルパスクラス
Definition mgl_file_path_view.h:20
例外を発生させるファイルユーティリティクラス
Definition mgl_file_throwing_utility.h:20
void Copy(const PathView &sourcePath, const PathView &destPath)
ファイルのコピー
Definition mgl_file_throwing_utility.cc:98
bool IsSystemNativeFile(const PathView &path)
システム標準のファイルであるかをチェック
Definition mgl_file_throwing_utility.cc:138
STL::string GetSystemNativePath(const PathView &path)
マウントパスからシステム標準のパスに変換
Definition mgl_file_throwing_utility.cc:236
void Remount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey=Mounter::kDefaultDelegateKey)
再マウント
Definition mgl_file_throwing_utility.cc:200
constexpr void AddDelegate(DelegateKey key, Args... args)
デリゲートの追加
Definition mgl_file_throwing_utility.h:47
void MakeDirectory(const PathView &path)
ディレクトリを作成する
Definition mgl_file_throwing_utility.cc:45
void Move(const PathView &sourcePath, const PathView &destPath)
ファイルの移動・リネーム
Definition mgl_file_throwing_utility.cc:63
static bool IsMounted(const PathView &mountName) noexcept
マウントされているかを取得
Definition mgl_file_throwing_utility.cc:222
void Unmount(const PathView &mountName)
マウント解除
Definition mgl_file_throwing_utility.cc:180
void RemoveDelegate(DelegateKey key)
デリゲートの削除
Definition mgl_file_throwing_utility.cc:257
void Mount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey=Mounter::kDefaultDelegateKey)
マウント
Definition mgl_file_throwing_utility.cc:160
size_t GetSize(const PathView &path)
ファイルのサイズを取得
Definition mgl_file_throwing_utility.cc:25
static void SetDefaultDelegate(DelegateKey key) noexcept
デフォルトのデリゲートを設定
Definition mgl_file_throwing_utility.cc:273
void Remove(const PathView &path)
ファイルの削除
Definition mgl_file_throwing_utility.cc:80
bool Exists(const PathView &path)
ファイルの存在をチェック
Definition mgl_file_throwing_utility.cc:117
constexpr bool HasError() const noexcept
エラーが発生しているかを取得
Definition mgl_result_wrapper.h:151
static Mounter & GetInstance() noexcept
Definition mgl_singleton.h:74
MountAccessType
マウント時のアクセスタイプ
Definition mgl_file_defs.h:56
DelegateKey
デリゲートキーの型
Definition mgl_file_defs.h:23
MGL ファイルマウンタ
basic_string< char > string
std::stringの代替
Definition mgl_stl_string.h:25