MGL::File各種定義#

概要#

MGL::Fileで定義されている、ファイルシステム関連の処理が共通で使用する定義です。

#

種類

名前

内容

DelegateKey

デリゲートの種類を表すための型

クラス

Result

処理結果を表すクラス

列挙型

OpenMode

オープンモード

列挙型

MountAccessType

マウント時のアクセスタイプ

列挙型

SeekType

シークタイプ

列挙型

Error

エラー定義

関数・定数式#

種類

名前

内容

定数式

MakeDelegateKey

デリゲート判別用の値を作るための定数式


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

生成されたデリゲートキー

説明#

ファイルデリゲートの種類を表す値を生成するための定数式です。

ファイルデリゲートについてはファイルデリゲートの作成(準備中)を参照してください。

関連#