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
17
18namespace MGL::File
19{
22{
23public:
24 [[nodiscard]] size_t GetSize(const PathView &path);
25 void MakeDirectory(const PathView &path);
26 void Move(const PathView &sourcePath, const PathView &destPath);
27 void Remove(const PathView &path);
28 void Copy(const PathView &sourcePath, const PathView &destPath);
29 [[nodiscard]] bool Exists(const PathView &path);
30 [[nodiscard]] bool IsSystemNativeFile(const PathView &path);
31 void Mount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey = Mounter::kDefaultDelegateKey);
32 void Unmount(const PathView &mountName);
33 void Remount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey = Mounter::kDefaultDelegateKey);
34 [[nodiscard]] static bool IsMounted(const PathView &mountName) noexcept;
35 [[nodiscard]] STL::string GetSystemNativePath(const PathView &path);
37 static void SetDefaultDelegate(DelegateKey key) noexcept;
38
39 /* ------------------------------------------------------------------------- */
47 /* ------------------------------------------------------------------------- */
48 template <class DelegateClass, class... Args>
49 constexpr void AddDelegate(DelegateKey key, Args... args)
50 {
51 _result = Mounter::GetInstance().AddDelegate(key, STL::make_shared<DelegateClass>(args...));
52 if (_result.HasError())
53 {
54 throw Exception(_result.GetError(), Text::Format("Failed to add delegate: {}", static_cast<uint32_t>(key)).c_str());
55 }
56 }
57
58private:
59 Result _result;
60};
61} // namespace MGL::File
62#endif // INCGUARD_MGL_FILE_THROWING_UTILITY_H_1612509728
63
64// vim: et ts=4 sw=4 sts=4
ファイルシステム用例外クラス
Definition mgl_file_exception.h:23
static constexpr DelegateKey kDefaultDelegateKey
デフォルトを表す予約デリゲートキー
Definition mgl_file_mounter.h:44
文字列の参照のみを行うファイルパスクラス
Definition mgl_file_path_view.h:20
例外を発生させるファイルユーティリティクラス
Definition mgl_file_throwing_utility.h:22
void Copy(const PathView &sourcePath, const PathView &destPath)
ファイルのコピー
Definition mgl_file_throwing_utility.cc:94
bool IsSystemNativeFile(const PathView &path)
システム標準のファイルであるかをチェック
Definition mgl_file_throwing_utility.cc:132
STL::string GetSystemNativePath(const PathView &path)
マウントパスからシステム標準のパスに変換
Definition mgl_file_throwing_utility.cc:225
void Remount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey=Mounter::kDefaultDelegateKey)
再マウント
Definition mgl_file_throwing_utility.cc:191
constexpr void AddDelegate(DelegateKey key, Args... args)
デリゲートの追加
Definition mgl_file_throwing_utility.h:49
void MakeDirectory(const PathView &path)
ディレクトリを作成する
Definition mgl_file_throwing_utility.cc:44
void Move(const PathView &sourcePath, const PathView &destPath)
ファイルの移動・リネーム
Definition mgl_file_throwing_utility.cc:61
static bool IsMounted(const PathView &mountName) noexcept
マウントされているかを取得
Definition mgl_file_throwing_utility.cc:212
void Unmount(const PathView &mountName)
マウント解除
Definition mgl_file_throwing_utility.cc:172
void RemoveDelegate(DelegateKey key)
デリゲートの削除
Definition mgl_file_throwing_utility.cc:245
void Mount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey=Mounter::kDefaultDelegateKey)
マウント
Definition mgl_file_throwing_utility.cc:153
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:262
void Remove(const PathView &path)
ファイルの削除
Definition mgl_file_throwing_utility.cc:77
bool Exists(const PathView &path)
ファイルの存在をチェック
Definition mgl_file_throwing_utility.cc:112
constexpr bool HasError() const noexcept
エラーが発生しているかを取得
Definition mgl_result_wrapper.h:151
constexpr ErrorType GetError() const noexcept
エラーを取得
Definition mgl_result_wrapper.h:58
static Mounter & GetInstance() noexcept
Definition mgl_singleton.h:73
MountAccessType
マウント時のアクセスタイプ
Definition mgl_file_defs.h:56
DelegateKey
デリゲートキーの型
Definition mgl_file_defs.h:23
MGL ファイルシステム用例外クラス
MGL ファイルマウンタ
basic_string< char > string
std::stringの代替
Definition mgl_stl_string.h:25
MGL テキストフォーマット