FS_COMMAND_OPENFILEDIRECT

定義


FSResult FS_ARCHIVE_PROC_FUNC(FSFile *p_file, FSCommandType command /* = FS_COMMAND_OPENFILEDIRECT */);

説明

アーカイブコマンド FS_COMMAND_OPENFILEDIRECT の動作仕様を以下に示します



このコマンドに渡される引数
p_file に格納された変数 arg.openfiledirect をコマンド引数とします。 
この変数は nitro/fs/file.h にて以下のように定義されています。

typedef struct
{
    u32     top;
    u32     bottom;
    u32     index;
} FSOpenFileDirectInfo;
引数の内容は以下のとおりです。
引数 内容
top ファイルイメージの領域先頭を示す、アーカイブのベースオフセット値を示します。
この値は、FS_SeekFile 関数での領域判定に使用されます。
bottom ファイルイメージの領域終端を示す、アーカイブのベースオフセット値を示します。
この値は、FS_SeekFile 関数での領域判定に使用されます。
index ファイルのインデックスを示します。
この値は、FS_COMMAND_GETPATH コマンドで使用されます。


このコマンドに要求される動作
p_file の変数 prop.file を以下のように設定します。

・引数の top, bottom, index に基づいて prop.file の各変数を適切に設定します。
  設定した値は、以降の FS_COMMAND_READFILE コマンドおよび FS_COMMAND_WRITEFILE コマンドで使用されます。
  これらのコマンドに対して正当な引数になるのであれば、prop.file の各変数の意味については独自に取り決めて構いません。
  ただし、prop.file.pos については prop.file.top から prop.file.bottom の範囲におさまっている必要があります。

デフォルトの実装

以下の取り決めに基づいて値を設定します。
prop.file.top 引数 top をそのまま設定
prop.file.bottom 引数 bottom をそのまま設定
prop.file.pos prop.file.top と同じ値を設定
prop.file.own_id 引数 index と p_file->arc を設定


コマンドの結果
FS_RESULT_SUCCESS を返した場合、p_file はファイル情報を格納したハンドルになり、
以降は FS_IsFile 関数で TRUE を返すようになります。
また、ファイルを操作する関数の引数に使われるようになります。

このコマンドが使用される関数
FS_OpenFileDirect
( デフォルトの FS_OPENFILEFAST コマンドから間接的に )
FS_OpenFile
FS_OpenFileFast

参照

FSArchive FS_ARCHIVE_PROC_FUNC FS_COMMAND_*
FS_SetArchiveProc

履歴

2004/08/25 誤記修正 FS_COMMAND_WRITE → FS_COMMAND_WRITEFILE
2004/07/12 初版