13GX_CORE_NAMESPACE_BEGIN()
30 static constexpr u32 REQUEST_BUFFER_MAX =
GxMath::VALUE_32;
32 static constexpr u32 READ_ASYNC_ONE_SIZE =
GxMath::VALUE_128K;
60 typedef void (*REQUEST_START_CALLBACK_FUNCTION)(
void* pUser,
GX_HANDLE requestHandle);
81 GxAsyncRequestCallback(
void* pUser =
nullptr, REQUEST_START_CALLBACK_FUNCTION startCallback =
nullptr, REQUEST_END_CALLBACK_FUNCTION endCallback =
nullptr)
83 , _onStartCallback(startCallback)
84 , _onEndCallback(endCallback)
117 GX_FORCE_INLINE
b32 isFree(
void)
const {
return (_pFile ==
nullptr); }
119 constexpr void free(
void) { _pFile =
nullptr; _pDst =
nullptr; }
155 static constexpr s32 WAIT_INFINITY = -1;
167 GX_FORCE_INLINE
b32 waitStartEvent(s32 milliSecond = WAIT_INFINITY) {
return _startEvent.waitEvent(milliSecond); }
171 GX_FORCE_INLINE
b32 waitAsyncIOEvent(s32 milliSecond = WAIT_INFINITY) {
return _asyncIOEvent.waitEvent(milliSecond); }
177 GX_FORCE_INLINE
static void callbackAsyncRead(
void* ,
GxFile& , u32 ) {}
207 b32 initialize(
const GxClassBase* pInitialInformation =
nullptr)
override;
209 void terminate(
void)
override;
218 u32 read(
GxFile* pFile,
void* pDst, u32 size);
220 GX_HANDLE readAsync(
GxFile* pFile,
void* pDst, u32 seek, u32 size, REQUEST_PRIORITY priority,
const GxAsyncRequestCallback* pCallback =
nullptr);
246 constexpr u32 getAsyncRequestIndex(
GX_HANDLE requestHandle)
const {
return _requestBuffer[requestHandle]._requestIndex; }
252 u32 getFreeRequestCount(
void)
const;
255 constexpr GxAsyncRequest* getActiveRequest(REQUEST_PRIORITY priority)
const {
return _pActiveRequest[
static_cast<s32
>(priority)]; }
257 constexpr GxArray* getReserveRequestList(REQUEST_PRIORITY priority) {
return &_reserveRequestList[
static_cast<s32
>(priority)]; }
262 GX_FORCE_INLINE
void setDisableStatSync(
b32 flag){ _disableStatSync = flag; }
264 GX_FORCE_INLINE
b32 isDisableStatSync(
void)
const {
return _disableStatSync; }
274 GxArray _reserveRequestList[
static_cast<s32
>(REQUEST_PRIORITY::MAX)];
279 s64 _opStorage[GX_FIOS_OP_STORAGE_SIZE(
GxMath::VALUE_64, GxFile::FILE_PATH_MAX) /
sizeof(s64) + 1];
280 s64 _chunkStorage[GX_FIOS_CHUNK_STORAGE_SIZE(
GxMath::VALUE_1K) /
sizeof(s64) + 1];
281 s64 _fHStorage[GX_FIOS_FH_STORAGE_SIZE(
GxMath::VALUE_256, GxFile::FILE_PATH_MAX) /
sizeof(s64) + 1];
282 s64 _dHStorage[GX_FIOS_DH_STORAGE_SIZE(
GxMath::VALUE_8, GxFile::FILE_PATH_MAX) /
sizeof(s64) + 1];
289 b32 _disableStatSync;
324GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
u32 GX_HANDLE
ハンドル
Definition GxDefine.h:214
pThis threadMain(pThis->_pIn)
配列クラス
Definition GxArray.h:18
オブジェクト基底クラス
Definition GxBase.h:88
イベントクラス
Definition GxThread.h:132
ファイル管理クラス
Definition GxFile.h:157
算術演算クラス
Definition GxMath.h:84
static constexpr u32 VALUE_1K
1K
Definition GxMath.h:129
static constexpr u32 VALUE_256
256
Definition GxMath.h:127
static constexpr u32 VALUE_8
8
Definition GxMath.h:122
static constexpr u32 VALUE_64
64
Definition GxMath.h:125
システム基底クラス
Definition GxSysBase.h:18
非同期読み込みスレッドクラス
Definition GxSysFile.h:148
GX_FORCE_INLINE b32 waitAsyncIOEvent(s32 milliSecond=WAIT_INFINITY)
非同期I/Oイベント待ち
Definition GxSysFile.h:171
GX_FORCE_INLINE b32 setStartEvent(void)
開始イベント開始
Definition GxSysFile.h:169
GX_FORCE_INLINE b32 waitStartEvent(s32 milliSecond=WAIT_INFINITY)
開始イベント待ち
Definition GxSysFile.h:167
GX_FORCE_INLINE b32 setAsyncIOEvent(void)
非同期I/Oイベント開始
Definition GxSysFile.h:173
ファイルシステムクラス
Definition GxSysFile.h:19
constexpr u32 getReserveRequestCount(REQUEST_PRIORITY priority) const
待機リクエスト個数取得
Definition GxSysFile.h:250
constexpr void * getAsyncRequestDstBuffer(GX_HANDLE requestHandle) const
非同期リクエスト格納先バッファ取得
Definition GxSysFile.h:237
constexpr u32 getAsyncRequestRemain(GX_HANDLE requestHandle) const
非同期リクエスト残サイズ取得
Definition GxSysFile.h:243
GxAsyncReadThread _thread
非同期読み込みスレッド
Definition GxSysFile.h:276
constexpr GxFile * getAsyncRequestFile(GX_HANDLE requestHandle) const
非同期リクエストファイル取得
Definition GxSysFile.h:235
constexpr ASYNC_RESULT getAsyncResult(GX_HANDLE requestHandle) const
非同期リクエスト結果取得
Definition GxSysFile.h:233
b32 _isStopThread
非同期読み込みスレッド停止要求フラグ
Definition GxSysFile.h:277
REQUEST_PRIORITY
非同期要求プライオリティ
Definition GxSysFile.h:36
constexpr void setAsyncRequestDstBuffer(GX_HANDLE requestHandle, void *pDst)
非同期リクエスト格納先バッファ設定
Definition GxSysFile.h:239
constexpr u32 getAsyncRequestSize(GX_HANDLE requestHandle) const
非同期リクエストサイズ取得
Definition GxSysFile.h:241
REQUEST_STATE
リクエスト状態
Definition GxSysFile.h:45
ASYNC_RESULT
非同期結果
Definition GxSysFile.h:52
スレッドクラス
Definition GxThread.h:177
シングルトン基礎クラス
Definition GxSingleton.h:19
static constexpr GxSysFile * getSingletonPointer(void)
Definition GxSingleton.h:59
非同期リクエストコールバック情報
Definition GxSysFile.h:66
GxAsyncRequestCallback(void *pUser=nullptr, REQUEST_START_CALLBACK_FUNCTION startCallback=nullptr, REQUEST_END_CALLBACK_FUNCTION endCallback=nullptr)
コンストラクタ
Definition GxSysFile.h:81
REQUEST_START_CALLBACK_FUNCTION _onStartCallback
開始時コールバック関数
Definition GxSysFile.h:94
REQUEST_END_CALLBACK_FUNCTION _onEndCallback
終了時コールバック関数
Definition GxSysFile.h:95
void * _pUser
ユーザ定義ポインタ
Definition GxSysFile.h:93
非同期リクエスト情報
Definition GxSysFile.h:102
u32 _size
読み込みサイズ
Definition GxSysFile.h:132
GxFile * _pFile
読み込みファイル情報
Definition GxSysFile.h:130
void * _pDst
読込先ポインタ
Definition GxSysFile.h:131
GX_FORCE_INLINE b32 isFree(void) const
空きバッファ判定
Definition GxSysFile.h:117
REQUEST_STATE _state
リクエスト状態
Definition GxSysFile.h:135
ASYNC_RESULT _result
非同期処理結果
Definition GxSysFile.h:136
u32 _seek
シーク位置
Definition GxSysFile.h:133
constexpr void free(void)
空きバッファ設定
Definition GxSysFile.h:119
GxAsyncRequestCallback _callback
コールバック情報
Definition GxSysFile.h:137
u32 _remain
残サイズ
Definition GxSysFile.h:134
void setRequestRead(GxFile *pFile, void *pDst, u32 seek, u32 size, const GxAsyncRequestCallback *pCallback)
読み込みリクエスト設定
Definition GxSysFile.h:306
GX_HANDLE _handle
ハンドル
Definition GxSysFile.h:129
32bitブーリアン
Definition GxDefine.h:173