MGL::File 各種定義
Contents
MGL::File各種定義#
概要#
MGL::Fileで定義されている、ファイルシステム関連の処理が共通で使用する定義です。
型#
種類 |
名前 |
内容 |
---|---|---|
型 |
デリゲートの種類を表すための型 |
|
クラス |
処理結果を表すクラス |
|
列挙型 |
オープンモード |
|
列挙型 |
マウント時のアクセスタイプ |
|
列挙型 |
シークタイプ |
|
列挙型 |
エラー定義 |
関数・定数式#
種類 |
名前 |
内容 |
---|---|---|
定数式 |
デリゲート判別用の値を作るための定数式 |
DelegateKey#
デリゲートの種類を表すための型
宣言#
namespace MGL::File
{
enum class DelegateKey : uint32_t {};
}
説明#
デリゲートの種類を表すための型です。
この値はMakeDelegateKeyによって生成されます。主に独自のデリゲートを登録する場合に使用します。
関連#
Result#
処理結果を表すクラス
宣言#
namespace MGL::File
{
using Result = MGL::ResultWrapper<Error, Error::None, Error::NoOperation>;
}
説明#
ファイルシステムにおける処理結果を表すクラスです。
このクラスはErrorをメンバとして保持し、その内容に応じて適切にbool
型へと変換します。
利用例#
// ファイルユーティリティクラス
MGL::File::Utility utility;
// ディレクトリの生成
MGL::File::Result result = utility.MakeDirectory("/path/to/directory");
if (!result) // bool型として利用可能
{
// 正常に処理できなかった場合はここに到達
printf("error code: %d\n", result.GetErrorCode()); // エラーコードの取得も可能
}
関連#
OpenMode#
オープンモード
宣言#
namespace MGL::File
{
enum class OpenMode : uint8_t
{
None, //!< 無効
Read, //!< 読み込み
Write //!< 書き込み
};
}
説明#
ファイルをオープンする際に指定するモードです。効果は次の通りです。
- None
無効な指定です。通常、このモードを指定した場合はオープンに失敗します。
- Read
ファイルを読み込みモードでオープンします。このモードで開いた場合は書き込みを行えません。
- Write
ファイルを書き込みモードでオープンします。このモードで開いた場合は読み込みを行えません。
関連#
MountAccessType#
マウント時のアクセスタイプ
宣言#
namespace MGL::File
{
enum class MountAccessType : uint8_t
{
ReadOnly, //!< 読み込み専用
Writable, //!< 書き込み可能
};
}
説明#
ファイルやディレクトリをマウントする際に指定するアクセスタイプです。効果は次の通りです。
- ReadOnly
ファイルやディレクトリを読み込み専用でマウントします。このモードでマウントした場合、そのマウント名を経由したパスの指定において一切の書き込み動作が禁止されます。
- Writable
ファイルやディレクトリを書き込み可能としてマウントします。
関連#
SeekType#
シークタイプ
宣言#
namespace MGL::File
{
enum class SeekType : uint8_t
{
Top, //!< 先頭から
End, //!< 末尾から
Current //!< 現在の位置から
};
}
説明#
ストリーム位置のオフセットの基準値を表す値です。値の内容は次の通りです。
- Top
ファイルの先頭を基準としてオフセットを扱います。この値を使用する場合、オフセットに負数を指定することはできません。
- End
ファイルの末尾を基準としてオフセットを扱います。オフセットは正数として扱い、負数を指定することはできません。
- Current
現在のストリーム位置を基準としてオフセットを扱います。オフセットは正数、負数のどちらも利用可能です。
関連#
Error#
エラー定義
宣言#
namespace MGL::File
{
enum class Error : uint16_t
{
// 省略(下記参照)
};
}
説明#
ファイルシステムの処理結果を表す値です。この値はエラーコードも兼ねています。
値の意味とエラーコードは次の通りです。
名前 |
エラーコード |
内容 |
---|---|---|
None |
0 |
エラーなし(成功) |
NoOperation |
100 |
処理していない |
NotImplemented |
101 |
未実装 |
NotSupported |
102 |
指定された操作に対応していない |
InvalidDelegate |
103 |
デリゲートが不正 |
InvalidArgument |
104 |
引数が不正 |
InvalidPathFormat |
105 |
パスの書式が不正 |
BadImplement |
106 |
実装上の不正 |
DelegateAlreadyExist |
200 |
デリゲートが既に存在している |
DelegateNotExist |
201 |
デリゲートが存在しない |
NotMounted |
202 |
マウントされていない |
AlreadyMounted |
203 |
既にマウントされている |
MountNotWritable |
204 |
書き込み不可能なマウントに対する書き込み操作を行おうとしている |
MountFailed |
205 |
マウントに失敗 |
NotOpened |
206 |
オープンされていない |
NotReadableMode |
207 |
読み込み用にオープンされていない |
NotWritableMode |
208 |
書き込み用にオープンされていない |
NoSystemNativeFile |
209 |
対象がシステム標準のファイルではない |
NoRegularFile |
210 |
通常ファイルではない |
FileNotExist |
300 |
ファイルが存在しない |
FileAlreadyExist |
301 |
ファイルが既に存在している |
PathNotFound |
302 |
パスが存在しない |
NotPermitted |
303 |
ファイルにアクセスする権限がない |
NoSpaceStorage |
304 |
保存領域の容量不足 |
ReadError |
305 |
読み込みに失敗 |
WriteError |
306 |
書き込みに失敗 |
UnknownError |
999 |
不明なエラー |
関連#
MakeDelegateKey#
デリゲート判別用の値を作るための定数式
宣言#
namespace MGL::File
{
[[nodiscard]] constexpr DelegateKey MakeDelegateKey(
const char *keyString,
uint32_t seed = kDefaultDelegateKeySeed) noexcept;
}
引数#
- const char *keyString
キーとなる文字列
- uint32_t seed
値生成のためのシード値
戻り値#
- MGL::File::DelegateKey
生成されたデリゲートキー
説明#
ファイルデリゲートの種類を表す値を生成するための定数式です。
ファイルデリゲートについてはファイルデリゲートの作成(準備中)を参照してください。