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

リソースファイルアーカイブ管理クラス More...

#include <GxSysResource.h>

Inheritance diagram for GxSysResourceArchive:
Collaboration diagram for GxSysResourceArchive:

Classes

struct  GxArchiveFileInformation
 アーカイブファイル情報 More...
 
struct  GxArchiveHeader
 アーカイブヘッダー More...
 
struct  GxArchiveOffsetInformation
 オフセットテーブル情報 More...
 

Public Member Functions

コンストラクタ
 GxSysResourceArchive (void)
 コンストラクタ
 
 ~GxSysResourceArchive (void) override
 デストラクタ
 
b32 initialize (u32 archiveFileMax, u32 archiveLocalThreadFileMax, const GxResourceFileTable *pResourceFileTable=nullptr, const s16 *pArchiveSearchOrderTable=nullptr)
 初期化
 
void terminate (void)
 終了
 
- 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)
 デフォルトオブジェクト判定
 

定義

static constexpr u32 ARCHIVE_FILE_FOURCC = GX_FOURCC('G','D','A','T')
 アーカイブファイルFOURCC
 
static constexpr u32 FILE_ARCHIVE_SIZE_MAX = U32_MAX - 1
 アーカイブファイル最大サイズ (4GB-1)
 

操作

constexpr void update (void)
 実行
 
void openAllArchiveFiles (GX_CSTR basePath, const GxResourceFileTable *pResourceFileTable)
 アーカイブファイル群オープン(初期化時のみ内部使用)
 
b32 openArchiveFile (GX_CSTR basePath, const GxResourceFileTable *pResourceFileTable, s16 archiveId)
 アーカイブファイルオープン
 
void closeArchiveFile (s16 archiveId)
 アーカイブファイルクローズ
 
void initializeArchiveSearchOrder (const s16 *pArchiveSearchOrderTable=nullptr)
 アーカイブ検索順テーブルの作成。
 
static b32 readArchiveHeader (GxStream &srcStream, GxArchiveHeader &dstHeader)
 アーカイブヘッダー読み込み
 
static b32 readArchiveOffsetTable (GxStream &srcStream, GxArchiveOffsetInformation *pDstOffsetTable, u32 archiveCount)
 アーカイブオフセットテーブル読み込み
 

アクセサ

u32 getIndex (s16 archiveId, u64 resourceId) const
 アーカイブファイル内インデックス取得
 
const GxArchiveOffsetInformationgetOffsetInformation (s16 archiveId, u32 archiveIndex) const
 アーカイブファイルオフセット情報取得
 
GxFilegetFile (s16 archiveId)
 アーカイブファイル取得
 
GxFileStreamgetLocalThreadFileStream (s16 archiveId, u32 archiveIndex, GxFile **retFile)
 
GxFilegetLocalThreadFile (s16 archiveId)
 
void freeLocalThreadFile (s16 archiveId, GxFile *lsFile)
 getLocalThreadFile()で取得したファイルをシステムに返す
 
constexpr u32 getArchiveFileMax (void) const
 アーカイブファイルが使用できる最大数。
 
constexpr u32 getArchiveLocalThreadFileMax (void) const
 別スレッド同時アクセス作業用ファイル最大数
 
b32 isArchiveOpened (s16 archiveId) const
 アーカイブファイルがオープンしているか調べる
 
const GxResourceFileTablegetResourceFileTable (const GX_CSTR srcResourcePath) const
 リソースパスからファイルテーブルを取得する
 
static void getArchiveFilePath (GxString &dst, s16 archiveId, GX_CSTR basePath)
 アーカイブファイルパス取得
 
static void getArchiveIndexResourcePath (GxString &dst, s16 archiveId)
 アーカイブファイル内インデックスリソースパス取得
 

Additional Inherited Members

- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 

Detailed Description

リソースファイルアーカイブ管理クラス

Member Function Documentation

◆ closeArchiveFile()

void GxSysResourceArchive::closeArchiveFile ( s16 archiveId)

アーカイブファイルクローズ

Parameters
archiveId[in] アーカイブID

◆ freeLocalThreadFile()

void GxSysResourceArchive::freeLocalThreadFile ( s16 archiveId,
GxFile * pFile )

getLocalThreadFile()で取得したファイルをシステムに返す

Parameters
archiveId[in] 対象リソースアーカイブID
pFile[in] ファイル

◆ getArchiveFilePath()

void GxSysResourceArchive::getArchiveFilePath ( GxString & dst,
s16 archiveId,
GX_CSTR basePath )
static

アーカイブファイルパス取得

Parameters
dst[out] 格納先
archiveId[in] アーカイブID
basePath[in] ベースパス

◆ getArchiveIndexResourcePath()

void GxSysResourceArchive::getArchiveIndexResourcePath ( GxString & dst,
s16 archiveId )
static

アーカイブファイル内インデックスリソースパス取得

Parameters
dst[out] 格納先
archiveId[in] アーカイブID

◆ getFile()

GxFile * GxSysResourceArchive::getFile ( s16 archiveId)

アーカイブファイル取得

Parameters
archiveId[in] 対象リソースアーカイブID
Returns
対象リソースアーカイブファイル (nullptrの場合:アーカイブ対象外)
Note
アーカイブファイルが実際存在するかどうかは GxFile::isOpend() でチェック

◆ getIndex()

u32 GxSysResourceArchive::getIndex ( s16 archiveId,
u64 resourceId ) const

アーカイブファイル内インデックス取得

アーカイブファイル内インデックス取得

Parameters
archiveId[in] 対象リソースアーカイブID
resourceId[in] 対象リソースID
Returns
対象リソースアーカイブファイル内インデックス (U32_MAXの場合:未発見)

◆ getLocalThreadFile()

GxFile * GxSysResourceArchive::getLocalThreadFile ( s16 archiveId)

現在のスレッドで利用可能なアーカイブファイルを取得。 使い終わったら freeLocalThreadFile() でシステムに返す必要がある

Parameters
archiveId[in] 対象リソースアーカイブID
Returns
アーカイブファイル
Here is the call graph for this function:

◆ getLocalThreadFileStream()

GxFileStream * GxSysResourceArchive::getLocalThreadFileStream ( s16 archiveId,
u32 index,
GxFile ** ppFile )

現在のスレッドで利用可能なアーカイブファイルストリーム取得 使い終わったら freeLocalThreadFile() を使用して retFile で取得したファイルをシステムに返す必要がある

Parameters
archiveId[in] 対象リソースアーカイブID
index[in] 対象リソースアーカイブファイル内インデックス
ppFile[out] アーカイブファイルを返す
Returns
対象リソースアクセスファイルストリーム

◆ getOffsetInformation()

const GxSysResourceArchive::GxArchiveOffsetInformation * GxSysResourceArchive::getOffsetInformation ( s16 archiveId,
u32 archiveIndex ) const

アーカイブファイルオフセット情報取得

Parameters
archiveId[in] 対象リソースアーカイブID
archiveIndex[in] 対象リソースアーカイブファイル内インデックス
Returns
対象リソースアクセスオフセット情報

◆ getResourceFileTable()

const GxResourceFileTable * GxSysResourceArchive::getResourceFileTable ( const GX_CSTR srcResourcePath) const

リソースパスからファイルテーブルを取得する

Parameters
srcResourcePath[in] 対象リソースパス
Returns
存在しない場合はnullptrを返す
Here is the call graph for this function:

◆ initialize()

b32 GxSysResourceArchive::initialize ( u32 archiveFileMax,
u32 archiveLocalThreadFileMax,
const GxResourceFileTable * pResourceFileTable = nullptr,
const s16 * pArchiveSearchOrderTable = nullptr )

初期化

Parameters
archiveFileMax[in] 最大アーカイブ数
archiveLocalThreadFileMax[in] 作業用ファイル数
pResourceFileTable[in] リソースファイルテーブル
pArchiveSearchOrderTable[in] アーカイブ検索順
Returns
成功ならtrue

◆ initializeArchiveSearchOrder()

void GxSysResourceArchive::initializeArchiveSearchOrder ( const s16 * pArchiveSearchOrderTable = nullptr)

アーカイブ検索順テーブルの作成。

Parameters
pArchiveSearchOrderTable[in] 検索順テーブル。nullptr の場合は番号順

◆ isArchiveOpened()

b32 GxSysResourceArchive::isArchiveOpened ( s16 archiveId) const

アーカイブファイルがオープンしているか調べる

Parameters
archiveId[in] 対象リソースアーカイブID
Returns
オープン済みの場合は true を返す
Here is the caller graph for this function:

◆ openAllArchiveFiles()

void GxSysResourceArchive::openAllArchiveFiles ( GX_CSTR basePath,
const GxResourceFileTable * pResourceFileTable )

アーカイブファイル群オープン(初期化時のみ内部使用)

Parameters
basePath[in] ベースパス
pResourceFileTable[in] リソースファイルテーブル

◆ openArchiveFile()

b32 GxSysResourceArchive::openArchiveFile ( GX_CSTR basePath,
const GxResourceFileTable * pResourceFileTable,
s16 archiveId )

アーカイブファイルオープン

Parameters
basePath[in] ベースパス
pResourceFileTable[in] リソースファイルテーブル
archiveId[in] アーカイブID
Returns
成功ならtrue
Here is the call graph for this function:

◆ readArchiveHeader()

b32 GxSysResourceArchive::readArchiveHeader ( GxStream & srcStream,
GxArchiveHeader & dstHeader )
staticprotected

アーカイブヘッダー読み込み

Parameters
srcStream[in,out] 読み込み元ストリーム
dstHeader[out] アーカイブヘッダー情報格納先
Returns
成功ならtrue
Here is the call graph for this function:

◆ readArchiveOffsetTable()

b32 GxSysResourceArchive::readArchiveOffsetTable ( GxStream & srcStream,
GxArchiveOffsetInformation * pDstBuffer,
u32 archiveCount )
staticprotected

アーカイブオフセットテーブル読み込み

Parameters
srcStream[in,out] 読み込み元ストリーム
pDstBuffer[out] アーカイブオフセットテーブル格納先バッファ
archiveCount[in] アーカイブファイル数
Returns
成功ならtrue
Here is the call graph for this function:

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