11#ifndef INCGUARD_MGL_FILE_DELEGATE_H_1611104162
12#define INCGUARD_MGL_FILE_DELEGATE_H_1611104162
45 [[nodiscard]] virtual
bool IsWritable() const noexcept = 0;
97 virtual
size_t Read(
AccessWork *work,
Result &result,
void *buffer,
size_t size) noexcept = 0;
109 virtual
size_t Write(
AccessWork *work,
Result &result, const
void *buffer,
size_t size) noexcept = 0;
ファイルアクセスのための作業用クラス
Definition mgl_file_access_work.h:24
ファイルデリゲートクラス
Definition mgl_file_delegate.h:25
virtual bool IsWritable() const noexcept=0
このデリゲートが書き込みに対応しているかを取得
virtual Result Remove(MountWork *mountWork, const PathView &path) noexcept=0
ファイルの削除
virtual bool Exists(MountWork *mountWork, Result &result, const PathView &path) noexcept=0
ファイルの存在をチェック
virtual bool IsManagedSystemNativeFile() const noexcept=0
このデリゲートがシステム標準のファイルを扱うものかを取得
virtual Result Mount(SharedMountWork &mountWork, const PathView &path, MountAccessType accessType) noexcept=0
マウント時の処理
virtual Result MakeDirectory(MountWork *mountWork, const PathView &path) noexcept=0
ディレクトリを作成する
virtual bool IsEOF(AccessWork *work, Result &result) const noexcept=0
ファイルストリームが終端に達しているかを取得
virtual size_t GetSize(AccessWork *work, Result &result) const noexcept=0
オープンしているファイルのサイズを取得
virtual void Unmount(SharedMountWork &mountWork) noexcept=0
マウント解除時の処理
virtual size_t GetOffset(AccessWork *work, Result &result) const noexcept=0
ストリーム位置を取得
virtual Result Move(MountWork *mountWork, const PathView &sourcePath, const PathView &destPath) noexcept=0
ファイルの移動・リネーム
virtual size_t Seek(AccessWork *work, Result &result, SeekType seekType, int32_t offset) noexcept=0
ストリーム位置を設定
virtual Result Close(AccessWork *work) noexcept=0
ファイルをクローズ
virtual AccessWorkPtr Open(Result &result, SharedMountWork &mountWork, const PathView &path, OpenMode mode) noexcept=0
ファイルをオープン
マウント毎のワークの基底クラス
Definition mgl_file_mount_work.h:20
文字列の参照のみを行うファイルパスクラス
Definition mgl_file_path_view.h:20
STL::unique_ptr< AccessWork > AccessWorkPtr
ファイルアクセスのためのワークのポインタ型
Definition mgl_file_access_work.h:130
MountAccessType
マウント時のアクセスタイプ
Definition mgl_file_defs.h:56
SeekType
シークタイプ
Definition mgl_file_defs.h:63
OpenMode
オープンモード
Definition mgl_file_defs.h:48
MGL ファイルアクセスに使用するマウント毎の作業用クラス
std::shared_ptr< MountWork > SharedMountWork
マウント毎のワークの共有ポインタ
Definition mgl_file_mount_work.h:51