OROCHI
 
Loading...
Searching...
No Matches
GxSysFile Class Reference

ファイルシステムクラス More...

#include <GxSysFile.h>

Inheritance diagram for GxSysFile:
Collaboration diagram for GxSysFile:

Classes

class  GxAsyncReadThread
 非同期読み込みスレッドクラス More...
 
struct  GxAsyncRequest
 非同期リクエスト情報 More...
 
struct  GxAsyncRequestCallback
 非同期リクエストコールバック情報 More...
 

Public Member Functions

初期化
 GxSysFile (void)
 コンストラクタ
 
b32 initialize (const GxClassBase *pInitialInformation=nullptr) override
 初期化
 
void terminate (void) override
 終了処理
 
操作
u32 read (GxFile *pFile, void *pDst, u32 size)
 同期読み込み
 
GX_HANDLE readAsync (GxFile *pFile, void *pDst, u32 seek, u32 size, REQUEST_PRIORITY priority, const GxAsyncRequestCallback *pCallback=nullptr)
 非同期読み込みリクエスト
 
b32 cancelAsync (GX_HANDLE requestHandle)
 非同期キャンセルリクエスト
 
b32 freeRequestHandle (GX_HANDLE requestHandle)
 非同期リクエストハンドル解放
 
アクセサ
constexpr ASYNC_RESULT getAsyncResult (GX_HANDLE requestHandle) const
 非同期リクエスト結果取得
 
constexpr GxFilegetAsyncRequestFile (GX_HANDLE requestHandle) const
 非同期リクエストファイル取得
 
constexpr void * getAsyncRequestDstBuffer (GX_HANDLE requestHandle) const
 非同期リクエスト格納先バッファ取得
 
constexpr void setAsyncRequestDstBuffer (GX_HANDLE requestHandle, void *pDst)
 非同期リクエスト格納先バッファ設定
 
constexpr u32 getAsyncRequestSize (GX_HANDLE requestHandle) const
 非同期リクエストサイズ取得
 
constexpr u32 getAsyncRequestRemain (GX_HANDLE requestHandle) const
 非同期リクエスト残サイズ取得
 
constexpr u32 getReserveRequestCount (REQUEST_PRIORITY priority) const
 待機リクエスト個数取得
 
u32 getFreeRequestCount (void) const
 空きリクエスト個数取得
 
- Public Member Functions inherited from GxSysBase
template<typename T >
T * getModule (void) const
 モジュールを取得
 
 GxSysBase (void)
 デフォルトコンストラクタ
 
 ~GxSysBase (void) override
 デストラクタ
 
virtual void update (void)
 更新
 
b32 isLocked (void)
 クリティカルセクションのロック状態を確認する
 
void sleep (f32 time)
 スリープ(スクリプト用)
 
- Public Member Functions inherited from GxClassBase
constexpr GxClassBase (void)
 コンストラクタ
 
constexpr GxClassBase (const GxClassBase &base)
 コピーコンストラクタ
 
 ~GxClassBase (void) override
 デストラクタ
 
- Public Member Functions inherited from GxClassBaseRoot
constexpr GxClassBaseRoot (void)
 コンストラクタ
 
constexpr GxClassBaseRoot (const GxClassBaseRoot &)
 コピーコンストラクタ
 
virtual ~GxClassBaseRoot (void)
 デストラクタ
 
constexpr GxClassBaseRootoperator= (const GxClassBaseRoot &)
 代入演算子
 
virtual GxRttigetRtti (void) const =0
 Rttiの取得
 
virtual GX_FORCE_INLINE const GxTypedObjectgetDefaultObject (void)
 デフォルトオブジェクトを取得
 
GX_FORCE_INLINE b32 isDefaultObject (void)
 デフォルトオブジェクト判定
 
- Public Member Functions inherited from SingletonBase< GxSysFile >
 SingletonBase (void)
 コンストラクタ
 
 ~SingletonBase (void)
 デストラクタ
 

Protected Attributes

メンバ変数
GxAsyncRequest _requestBuffer [REQUEST_BUFFER_MAX]
 リクエスト格納バッファ
 
GxArray _reserveRequestList [static_cast< s32 >(REQUEST_PRIORITY::MAX)]
 待機リクエストリスト
 
GxAsyncRequest_pActiveRequest [static_cast< s32 >(REQUEST_PRIORITY::MAX)]
 アクティブリクエストポインタ
 
GxAsyncReadThread _thread
 非同期読み込みスレッド
 
b32 _isStopThread
 非同期読み込みスレッド停止要求フラグ
 

定義

enum class  REQUEST_PRIORITY { HIGH = 0 , MIDDLE , LOW , MAX }
 非同期要求プライオリティ More...
 
enum class  REQUEST_STATE { READ = 0 , CANCEL }
 リクエスト状態 More...
 
enum class  ASYNC_RESULT { CANCELED = -2 , ERROR_ = -1 , PROGRESS = 0 , SUCCESS }
 非同期結果 More...
 
typedef void(*) REQUEST_START_CALLBACK_FUNCTION(void *pUser, GX_HANDLE requestHandle)
 非同期リクエスト開始コールバック関数
 
typedef void(*) REQUEST_END_CALLBACK_FUNCTION(void *pUser, GX_HANDLE requestHandle, GxSysFile::ASYNC_RESULT result)
 非同期リクエスト終了コールバック関数
 
static constexpr u32 REQUEST_BUFFER_MAX = GxMath::VALUE_32
 リクエストバッファ個数
 
static constexpr u32 READ_ASYNC_ONE_SIZE = GxMath::VALUE_128K
 非同期読み込み1回サイズ
 

Additional Inherited Members

- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 
- Static Public Member Functions inherited from SingletonBase< GxSysFile >
static GX_FORCE_INLINE GxSysFilegetSingleton (void)
 参照を取得
 
static constexpr GxSysFilegetSingletonPointer (void)
 ポインタを取得
 
- Protected Types inherited from GxSysBase
enum class  LOCK_TYPE { SEQUENTIAL_THREAD_SAFE , THREAD_SAFE }
 ロックタイプ More...
 
- Protected Member Functions inherited from GxSysBase
void terminateGxModules (void)
 GXモジュールの終了処理
 
void lock (LOCK_TYPE type=LOCK_TYPE::THREAD_SAFE)
 クリティカルセクションに入る
 
void unlock (LOCK_TYPE type=LOCK_TYPE::THREAD_SAFE)
 クリティカルセクションを出る
 
template<typename T >
T * addModule (void)
 モジュールを作成
 
template<typename T >
void removeModule (void)
 モジュールを削除
 

Detailed Description

ファイルシステムクラス

Member Enumeration Documentation

◆ ASYNC_RESULT

enum class GxSysFile::ASYNC_RESULT
strong

非同期結果

Enumerator
CANCELED 

キャンセル

ERROR_ 

エラー

PROGRESS 

処理中

SUCCESS 

成功

◆ REQUEST_PRIORITY

enum class GxSysFile::REQUEST_PRIORITY
strong

非同期要求プライオリティ

Enumerator
HIGH 

高優先

MIDDLE 

中優先

LOW 

低優先

MAX 

定義数

◆ REQUEST_STATE

enum class GxSysFile::REQUEST_STATE
strong

リクエスト状態

Enumerator
READ 

読み込み

CANCEL 

キャンセル

Member Function Documentation

◆ cancelAsync()

b32 GxSysFile::cancelAsync ( GX_HANDLE requestHandle)

非同期キャンセルリクエスト

Parameters
requestHandle[in] 対象リクエストハンドル
Returns
成功ならtrue
Note
キャンセルリクエストが成功した場合、完了を待つ必要がありますが、
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freeRequestHandle()

b32 GxSysFile::freeRequestHandle ( GX_HANDLE requestHandle)

非同期リクエストハンドル解放

Parameters
requestHandle[in] 対象リクエストハンドル
Returns
成功ならtrue
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFreeRequestCount()

u32 GxSysFile::getFreeRequestCount ( void ) const

空きリクエスト個数取得

Returns
空きリクエスト個数 (リクエスト可能個数)

◆ initialize()

b32 GxSysFile::initialize ( const GxClassBase * pInitialInformation = nullptr)
overridevirtual

初期化

Returns
成功ならtrue

Reimplemented from GxSysBase.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ read()

u32 GxSysFile::read ( GxFile * pFile,
void * pDst,
u32 size )

同期読み込み

Parameters
pFile[in,out] 対象ファイル情報
pDst[out] 読み込み先バッファ
size[in] 読み込みサイズ (byte)
Returns
読み込みデータサイズ
Note
GxFile関数のラッパー (※本来はファイルリクエストを GxSysFile 経由に統一したい)
Here is the call graph for this function:

◆ readAsync()

GX_HANDLE GxSysFile::readAsync ( GxFile * pFile,
void * pDst,
u32 seek,
u32 size,
REQUEST_PRIORITY priority,
const GxAsyncRequestCallback * pCallback = nullptr )

非同期読み込みリクエスト

Parameters
pFile[in,out] 対象ファイル情報
pDst[out] 読み込み先バッファ
seek[in] 読み込み開始位置
size[in] 読み込みサイズ (byte)
priority[in] 優先度 (High/Middle/Low)
pCallback[in] リクエストコールバック情報 (※不要な場合:nullptr指定)
Returns
リクエストハンドル (GX_INVALID_HANDLEの場合:リクエスト失敗 ※バッファ満タン)
Note
リクエストだけを発行しておき、読み込み処理開始時にバッファ確保したい場合は
Here is the call graph for this function:
Here is the caller graph for this function:

◆ terminate()

void GxSysFile::terminate ( void )
overridevirtual

終了処理

Reimplemented from GxSysBase.

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: