MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_file_utility.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_FILE_UTILITY_H_1664430837
12#define INCGUARD_MGL_FILE_UTILITY_H_1664430837
13
16
17namespace MGL::File
18{
21{
22public:
23 [[nodiscard]] size_t GetSize(const PathView &path) noexcept;
24 const Result &MakeDirectory(const PathView &path) noexcept;
25 const Result &Move(const PathView &sourcePath, const PathView &destPath) noexcept;
26 const Result &Remove(const PathView &path) noexcept;
27 const Result &Copy(const PathView &sourcePath, const PathView &destPath) noexcept;
28 [[nodiscard]] bool Exists(const PathView &path) noexcept;
29 [[nodiscard]] bool IsSystemNativeFile(const PathView &path) noexcept;
30 const Result &Mount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey = Mounter::kDefaultDelegateKey) noexcept;
31 const Result &Unmount(const PathView &mountName) noexcept;
32 const Result &Remount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey = Mounter::kDefaultDelegateKey) noexcept;
33 [[nodiscard]] static bool IsMounted(const PathView &mountName) noexcept;
34 [[nodiscard]] STL::string GetSystemNativePath(const PathView &path) noexcept;
35 const Result &RemoveDelegate(DelegateKey key) noexcept;
36 static void SetDefaultDelegate(DelegateKey key) noexcept;
37
38 /* ------------------------------------------------------------------------- */
46 /* ------------------------------------------------------------------------- */
47 template <class DelegateClass, class... Args>
48 constexpr const Result &AddDelegate(DelegateKey key, Args... args) noexcept
49 {
50 _result = Mounter::GetInstance().AddDelegate(key, STL::make_shared<DelegateClass>(args...));
51 return _result;
52 }
53
54 /* ------------------------------------------------------------------------- */
59 /* ------------------------------------------------------------------------- */
60 [[nodiscard]] constexpr const Result &GetResult() const noexcept
61 {
62 return _result;
63 }
64
65 /* ------------------------------------------------------------------------- */
71 /* ------------------------------------------------------------------------- */
72 [[nodiscard]] constexpr bool HasError() const noexcept
73 {
74 return _result.HasError();
75 }
76
77private:
78 Result _result;
79};
80} // namespace MGL::File
81
82#endif // INCGUARD_MGL_FILE_UTILITY_H_1664430837
83
84// 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_utility.h:21
const Result & Move(const PathView &sourcePath, const PathView &destPath) noexcept
ファイルの移動・リネーム
Definition mgl_file_utility.cc:52
bool IsSystemNativeFile(const PathView &path) noexcept
システム標準のファイルであるかをチェック
Definition mgl_file_utility.cc:112
const Result & Remount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey=Mounter::kDefaultDelegateKey) noexcept
再マウント
Definition mgl_file_utility.cc:159
size_t GetSize(const PathView &path) noexcept
ファイルのサイズを取得
Definition mgl_file_utility.cc:24
static void SetDefaultDelegate(DelegateKey key) noexcept
デフォルトのデリゲートを設定
Definition mgl_file_utility.cc:214
const Result & Remove(const PathView &path) noexcept
ファイルの削除
Definition mgl_file_utility.cc:66
const Result & MakeDirectory(const PathView &path) noexcept
ディレクトリを作成する
Definition mgl_file_utility.cc:37
constexpr bool HasError() const noexcept
最後の処理でエラーが発生しているかの取得
Definition mgl_file_utility.h:72
constexpr const Result & AddDelegate(DelegateKey key, Args... args) noexcept
デリゲートの追加
Definition mgl_file_utility.h:48
static bool IsMounted(const PathView &mountName) noexcept
マウントされているかを取得
Definition mgl_file_utility.cc:174
const Result & Mount(const PathView &mountName, const PathView &path, MountAccessType accessType, DelegateKey delegateKey=Mounter::kDefaultDelegateKey) noexcept
マウント
Definition mgl_file_utility.cc:128
constexpr const Result & GetResult() const noexcept
処理結果の取得
Definition mgl_file_utility.h:60
STL::string GetSystemNativePath(const PathView &path) noexcept
マウントパスからシステム標準のパスに変換
Definition mgl_file_utility.cc:187
bool Exists(const PathView &path) noexcept
ファイルの存在をチェック
Definition mgl_file_utility.cc:97
const Result & Copy(const PathView &sourcePath, const PathView &destPath) noexcept
ファイルのコピー
Definition mgl_file_utility.cc:81
const Result & Unmount(const PathView &mountName) noexcept
マウント解除
Definition mgl_file_utility.cc:142
const Result & RemoveDelegate(DelegateKey key) noexcept
デリゲートの削除
Definition mgl_file_utility.cc:200
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 ファイルマウンタ
MGL STL文字列クラスの代替
basic_string< char > string
std::stringの代替
Definition mgl_stl_string.h:25