OROCHI
 
Loading...
Searching...
No Matches
GxDataResourceGuid.h
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10#pragma once
11
12GX_CORE_NAMESPACE_BEGIN()
13
14//===========================================================================
16//===========================================================================
18{
19 //-----------------------------------------------------------
21 //-----------------------------------------------------------
23public:
25 GX_RTTI_CLASS(GxDataResourceGuid, GxData)
26 // ClassBase継承クラス用禁止宣言
28private:
30 enum class COLUMN
31 {
32 GUID = 0,
33 PATH,
34 MAX,
35 };
36#if GX_DEVELOP && defined(_WINDOWS)
38 static constexpr u32 BUFFER_SIZE = GxMath::VALUE_2M;
39#endif // !(GX_DEVELOP && _WINDOWS)
40
42 //-----------------------------------------------------------
44 //-----------------------------------------------------------
46public:
50 ~GxDataResourceGuid(void) override;
51
53 //-----------------------------------------------------------
55 //-----------------------------------------------------------
57public:
59 void loadResource(void);
60private:
62 void addFile(const GxGuid& guid, GX_CSTR path);
63
64#if GX_DEVELOP
65public:
67 void addNewFile(GX_CSTR path);
69 void moveFile(const GxGuid& guid, GX_CSTR newPath);
71 void removeFile(const GxGuid& guid);
73 void refresh(void);
75 void save(void);
76private:
78 static b32 callbackAddResourceGuid(const GxRttiResource& resRtti, GX_CSTR resourcePath, void* pArgument);
79#endif //GX_DEVELOP
80
82 //-----------------------------------------------------------
84 //-----------------------------------------------------------
86public:
88 void getPath(const GxGuid& guid, GxString& path) const;
90 GX_FORCE_INLINE b32 hasGuid(GX_CSTR path) const { return _pGuidMap->findKeyFromString(path) ? true : false; }
92 b32 getGuid(const GxResBase* pResource, GxGuid& guid) const;
94 GX_FORCE_INLINE void getGuid(GX_CSTR path, GxGuid& guid) const { guid.setID(*reinterpret_cast<u128*>(const_cast<GX_STR>(_pGuidMap->findKeyFromString(path)))); }
96 void getGuidList(GxArray& list, const GxRttiResource& resRtti) const;
97
99 //-----------------------------------------------------------
101 //-----------------------------------------------------------
103private:
104 GxHashMap* _pGuidMap;
105 GxMemoryStream _pathStream;
106
108};
109
110GX_CORE_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
@ MAX
定義数
配列クラス
Definition GxArray.h:18
csvデータアクセス基礎クラス
Definition GxData.h:18
リソースGUIDリストアクセスクラス
Definition GxDataResourceGuid.h:18
GX_FORCE_INLINE b32 hasGuid(GX_CSTR path) const
GUIDの所持判定
Definition GxDataResourceGuid.h:90
GX_FORCE_INLINE void getGuid(GX_CSTR path, GxGuid &guid) const
GUIDを取得
Definition GxDataResourceGuid.h:94
GUID生成クラス
Definition GxGuid.h:19
constexpr void setID(u128 id)
GUIDを設定
Definition GxGuid.h:51
連想配列クラス
Definition GxHashMap.h:18
static constexpr u32 VALUE_2M
2M
Definition GxMath.h:140
メモリストリームクラス
Definition GxStream.h:248
リソース基底クラス
Definition GxResBase.h:23
リソース実行時型情報クラス
Definition GxRttiResource.h:188
文字列型クラス
Definition GxString.h:18
32bitブーリアン
Definition GxDefine.h:173