構成 | マクロ定義 | 型定義 | 列挙型 | 関数
cri_le_file_system.h
#include <cri_le_xpt.h>
#include <cri_le_error.h>

ソースコードを見る。

構成

struct  CriFsConfigTag
 コンフィギュレーション [詳細]
struct  CriFsIoInterfaceTag
 I/Oインターフェース [詳細]

マクロ定義

#define CRIFS_DEVICE_DEFAULT   (CRIFS_DEVICE_00)
 デフォルトデバイスID
#define CRIFS_DEFAULT_DEVICE   (CRIFS_DEVICE_DEFAULT)
 デフォルトデバイスID旧定義
#define criFs_SetUserAllocator(p_malloc_func, p_free_func, p_obj)
 ユーザアロケータの登録
#define criFs_SetDefaultConfig(p_config)
 デフォルトコンフィギュレーションのセット

型定義

typedef enum CriFsThreadModelTag CriFsThreadModel
 スレッドモデル
typedef struct CriFsConfigTag CriFsConfig
 コンフィギュレーション
typedef void *(CRIAPI * CriFsMallocFunc )(void *obj, CriUint32 size)
 メモリ確保関数
typedef void(CRIAPI * CriFsFreeFunc )(void *obj, void *mem)
 メモリ解放関数
typedef enum CriFsDeviceIdTag CriFsDeviceId
 デバイスID
typedef void * CriFsFileHn
 ファイルハンドル
typedef struct CriFsIoInterfaceTag CriFsIoInterface
 I/Oインターフェース
typedef CriError(CRIAPI * CriFsSelectIoCbFunc )(const CriChar8 *path, CriFsDeviceId *device_id, CriFsIoInterfacePtr *ioif)
 I/O選択コールバック関数
typedef struct
CriFsBinderHnObjTag * 
CriFsBinderHn
 CriFsBinderハンドル

列挙型

enum  CriFsThreadModelTag { CRIFS_THREAD_MODEL_MULTI = 0, CRIFS_THREAD_MODEL_MULTI_USER_DRIVEN = 3, CRIFS_THREAD_MODEL_USER_MULTI = 1, CRIFS_THREAD_MODEL_SINGLE = 2 }
 スレッドモデル [詳細]
enum  CriFsDeviceIdTag { CRIFS_DEVICE_00 = 0 , CRIFS_DEVICE_07 , CRIFS_DEVICE_INVALID = -1 }
 デバイスID [詳細]
enum  CriFsFileMode {
  CRIFS_FILE_MODE_APPEND = 0, CRIFS_FILE_MODE_CREATE = 1, CRIFS_FILE_MODE_CREATE_NEW = 2, CRIFS_FILE_MODE_OPEN = 3,
  CRIFS_FILE_MODE_OPEN_OR_CREATE = 4, CRIFS_FILE_MODE_TRUNCATE = 5
}
 ファイルオープンモード [詳細]
enum  CriFsFileAccess { CRIFS_FILE_ACCESS_READ = 0, CRIFS_FILE_ACCESS_WRITE = 1, CRIFS_FILE_ACCESS_READ_WRITE = 2 }
 ファイルアクセス種別 [詳細]
enum  CriFsIoError {
  CRIFS_IO_ERROR_OK = 0, CRIFS_IO_ERROR_NG = -1, CRIFS_IO_ERROR_TRY_AGAIN = -2, CRIFS_IO_ERROR_NG_NO_ENTRY = -11,
  CRIFS_IO_ERROR_NG_INVALID_DATA = -12
}
 I/Oインターフェースのエラーコード [詳細]
enum  CriFsLoaderPriority {
  CRIFSLOADER_PRIORITY_HIGHEST = 2, CRIFSLOADER_PRIORITY_ABOVE_NORMAL = 1, CRIFSLOADER_PRIORITY_NORMAL = 0, CRIFSLOADER_PRIORITY_BELOW_NORMAL = -1,
  CRIFSLOADER_PRIORITY_LOWEST = -2
}
 ローダプライオリティ [詳細]

関数

void CRIAPI criFs_SetUserMallocFunction (CriFsMallocFunc func, void *obj)
 メモリ確保関数の登録
void CRIAPI criFs_SetUserFreeFunction (CriFsFreeFunc func, void *obj)
 メモリ解放関数の登録
CriError CRIAPI criFs_SetSelectIoCallback (CriFsSelectIoCbFunc func)
 I/O選択コールバックの登録

説明


マクロ定義

#define CRIFS_DEFAULT_DEVICE   (CRIFS_DEVICE_DEFAULT)

デフォルトデバイスID旧定義

備考:
この定義は廃止予定です。かわりに::CRIFS_DEVICE_DEFAULTを使用してください。
参照:
CRIFS_DEVICE_DEFAULT

型定義

スレッドモデル

説明:
CRI File Systemライブラリがどのようなスレッドモデルで動作するかを表します。
ライブラリ初期化時(::criFs_InitializeLibrary関数)に、::CriFsConfig構造体にて指定します。
参照:
CriFsConfig
criFs_InitializeLibrary
typedef struct CriFsConfigTag CriFsConfig

コンフィギュレーション

説明:
CRI File Systemライブラリの動作仕様を指定するための構造体です。
ライブラリ初期化時(::criFs_InitializeLibrary関数)に引数として本構造体を指定します。
CRI File Systemライブラリは、初期化時に指定されたコンフィギュレーションに応じて、内部リソースを必要な数分だけ確保します。
そのため、コンフィギュレーションに指定する値を小さくすることで、ライブラリが必要とするメモリのサイズを小さく抑えることが可能です。
ただし、コンフィギュレーションに指定した数以上のハンドルを確保することはできなくなるため、値を小さくしすぎると、ハンドルの確保に失敗する可能性があります。
備考:
デフォルト設定を使用する場合、 criFs_SetDefaultConfig 関数でデフォルトパラメータをセットし、 ::criFs_InitializeLibrary 関数に指定してください。
注意:
将来的にメンバが増える可能性に備え、設定前に::criFs_SetDefaultConfig 関数で初期化してから使用してください。
参照:
criFs_InitializeLibrary, criFs_SetDefaultConfig
typedef CriError(CRIAPI * CriFsSelectIoCbFunc)(const CriChar8 *path, CriFsDeviceId *device_id, CriFsIoInterfacePtr *ioif)

I/O選択コールバック関数

引数:
[in]pathファイルのパス
[out]device_idデバイスID
[out]ioifI/Oインターフェース
説明:
I/O選択コールバック関数は、CRI File SystemライブラリのI/O処理を、 ユーザの独自I/Oイーターフェースで置き換える際に使用します。
具体的には、ユーザは CriFsSelectIoCbFunc 型の関数を実装し、 その関数を criFs_SetSelectIoCallback 関数にセットする必要があります。
CriFsSelectIoCbFunc 関数は、入力されたファイルのパス(引数のpath)を解析し、 そのファイルが存在するデバイスのID(引数のdevice_id)と、 デバイスにアクセスするためのI/Oインターフェース(引数のioif)を返す必要があります。
補足:
ライブラリがデフォルト状態で利用するI/Oインターフェースは、 ::criFs_GetDefaultIoInterface 関数で取得可能です。
特定のファイルのみを独自のI/Oインターフェースを処理したい場合には、 他のファイルを全て ::criFs_GetDefaultIoInterface 関数で取得したI/Oインターフェースで処理してください。
 CriError
参照:
criFs_SetSelectIoCallback, criFs_GetDefaultIoInterface

列挙型

スレッドモデル

説明:
CRI File Systemライブラリがどのようなスレッドモデルで動作するかを表します。
ライブラリ初期化時(::criFs_InitializeLibrary関数)に、::CriFsConfig構造体にて指定します。
参照:
CriFsConfig
criFs_InitializeLibrary
列挙型の値:
CRIFS_THREAD_MODEL_MULTI 

マルチスレッド

説明:
ライブラリは内部でスレッドを作成し、マルチスレッドにて動作します。
スレッドは::criFs_InitializeLibrary関数呼び出し時に作成されます。
CRIFS_THREAD_MODEL_MULTI_USER_DRIVEN 

マルチスレッド(ユーザ駆動式)

説明:
ライブラリは内部でスレッドを作成し、マルチスレッドにて動作します。
スレッドは ::criFs_InitializeLibrary 関数呼び出し時に作成されます。
サーバ処理自体は作成されたスレッド上で実行されますが、 CRIFS_THREAD_MODEL_MULTI とは異なり、自動的には実行されません。
ユーザは ::criFs_ExecuteMain 関数で明示的にサーバ処理を駆動する必要があります。
( ::criFs_ExecuteMain 関数を実行すると、スレッドが起動し、サーバ処理が実行されます。)
CRIFS_THREAD_MODEL_USER_MULTI 

ユーザマルチスレッド

説明:
ライブラリ内部ではスレッドを作成しませんが、ユーザが独自に作成したスレッドからサーバ処理関数(::criFs_ExecuteFileAccess関数、::criFs_ExecuteDataDecompression関数)を呼び出せるよう、内部の排他制御は行います。
CRIFS_THREAD_MODEL_SINGLE 

シングルスレッド

説明:
ライブラリ内部でスレッドを作成しません。また、内部の排他制御も行いません。
このモデルを選択した場合、各APIとサーバ処理関数(::criFs_ExecuteFileAccess関数、::criFs_ExecuteDataDecompression関数)とを同一スレッドから呼び出すようにしてください。

デバイスID

列挙型の値:
CRIFS_DEVICE_00 

デフォルトデバイス

CRIFS_DEVICE_07 

メモリ

CRIFS_DEVICE_INVALID 

無効

ファイルオープンモード

列挙型の値:
CRIFS_FILE_MODE_APPEND 

既存ファイルに追記

CRIFS_FILE_MODE_CREATE 

ファイルの新規作成(既存のファイルは上書き)

CRIFS_FILE_MODE_CREATE_NEW 

ファイルの新規作成(上書き不可)

CRIFS_FILE_MODE_OPEN 

既存ファイルのオープン

CRIFS_FILE_MODE_OPEN_OR_CREATE 

ファイルのオープン(存在しない場合は新規作成)

CRIFS_FILE_MODE_TRUNCATE 

既存ファイルを0Byteに切り詰めてオープン

ファイルアクセス種別

列挙型の値:
CRIFS_FILE_ACCESS_READ 

読み込みのみ

CRIFS_FILE_ACCESS_WRITE 

書き込みのみ

CRIFS_FILE_ACCESS_READ_WRITE 

読み書き

I/Oインターフェースのエラーコード

Error of I/O Interface

列挙型の値:
CRIFS_IO_ERROR_OK 

エラーなし

CRIFS_IO_ERROR_NG 

一般エラー

CRIFS_IO_ERROR_TRY_AGAIN 

リトライすべき

CRIFS_IO_ERROR_NG_NO_ENTRY 

個別エラー(ファイル無し)

CRIFS_IO_ERROR_NG_INVALID_DATA 

個別エラー(データが不正)

ローダプライオリティ

列挙型の値:
CRIFSLOADER_PRIORITY_HIGHEST 

最高

CRIFSLOADER_PRIORITY_ABOVE_NORMAL 

CRIFSLOADER_PRIORITY_NORMAL 

普通

CRIFSLOADER_PRIORITY_BELOW_NORMAL 

CRIFSLOADER_PRIORITY_LOWEST 

最低


CRI Middleware logo Copyright (c) 2012-2018 CRI Middleware Co., Ltd. CRI ADX2 LE マニュアル (for Cocos2d-x) SDKVer.2.10版