3#ifndef ENGINE_SHARED_DATAFILE_H
4#define ENGINE_SHARED_DATAFILE_H
30typedef std::function<std::pair<void *, size_t>(
void *pData,
size_t Size)>
FDataProcessor;
44 [[nodiscard]]
bool Open(
const char *pFullName,
IStorage *pStorage,
const char *pPath,
int StorageType);
45 [[nodiscard]]
bool Open(
IStorage *pStorage,
const char *pPath,
int StorageType);
59 void *
GetItem(
int Index,
int *pType =
nullptr,
int *pId =
nullptr,
CUuid *pUuid =
nullptr);
60 void GetType(
int Type,
int *pStart,
int *pNum);
68 const char *
Path()
const;
135 Other.m_File =
nullptr;
137 m_vItems = std::move(Other.m_vItems);
138 m_vDatas = std::move(Other.m_vDatas);
144 int AddItem(
int Type,
int Id,
size_t Size,
const void *pData,
const CUuid *pUuid =
nullptr);
int GetItemSize(int Index) const
Definition datafile.cpp:858
void * GetItem(int Index, int *pType=nullptr, int *pId=nullptr, CUuid *pUuid=nullptr)
Definition datafile.cpp:921
void GetType(int Type, int *pStart, int *pNum)
Definition datafile.cpp:938
int FindItemIndex(int Type, int Id)
Definition datafile.cpp:958
const char * FullName() const
Definition datafile.cpp:999
int GetInternalItemType(int ExternalType)
Definition datafile.cpp:896
void UnloadData(int Index)
Definition datafile.cpp:835
const char * Path() const
Definition datafile.cpp:1013
IOHANDLE File() const
Definition datafile.cpp:777
int GetDataSize(int Index) const
Definition datafile.cpp:784
bool IsOpen() const
Definition datafile.cpp:772
SHA256_DIGEST Sha256() const
Definition datafile.cpp:1020
unsigned Crc() const
Definition datafile.cpp:1027
void * FindItem(int Type, int Id)
Definition datafile.cpp:975
bool OverrideItemData(int Index, const void *pData, size_t Size)
Definition datafile.cpp:985
int NumData() const
Definition datafile.cpp:851
void * GetData(int Index)
Definition datafile.cpp:791
int GetExternalItemType(int InternalType, CUuid *pUuid)
Definition datafile.cpp:865
bool Open(const char *pFullName, IStorage *pStorage, const char *pPath, int StorageType)
Definition datafile.cpp:517
class CDatafile * m_pDataFile
Definition datafile.h:35
int NumItems() const
Definition datafile.cpp:992
int Size() const
Definition datafile.cpp:1034
void Close()
Definition datafile.cpp:749
void * GetDataSwapped(int Index)
Definition datafile.cpp:798
const char * GetDataString(int Index)
Definition datafile.cpp:805
void AddDataProcessor(int Index, FDataProcessor DataProcessor)
Definition datafile.cpp:828
CDataFileReader & operator=(CDataFileReader &&Other)
Definition datafile.cpp:510
const char * BaseName() const
Definition datafile.cpp:1006
int m_CompressedSize
Definition datafile.h:91
int m_UncompressedSize
Definition datafile.h:89
void * m_pCompressedData
Definition datafile.h:90
void * m_pUncompressedData
Definition datafile.h:88
ECompressionLevel m_CompressionLevel
Definition datafile.h:92
Definition datafile.h:115
int m_Type
Definition datafile.h:117
CUuid m_Uuid
Definition datafile.h:118
int m_Prev
Definition datafile.h:102
int m_Next
Definition datafile.h:101
int m_Id
Definition datafile.h:99
int m_Size
Definition datafile.h:100
void * m_pData
Definition datafile.h:103
int m_Type
Definition datafile.h:98
Definition datafile.h:107
int m_Last
Definition datafile.h:111
int m_Num
Definition datafile.h:109
int m_First
Definition datafile.h:110
ECompressionLevel
Definition datafile.h:79
@ COMPRESSION_DEFAULT
Definition datafile.h:80
@ COMPRESSION_BEST
Definition datafile.h:81
CDataFileWriter()
Definition datafile.cpp:1041
std::vector< CDataInfo > m_vDatas
Definition datafile.h:124
void Finish()
Definition datafile.cpp:1230
int AddDataSwapped(size_t Size, const void *pData)
Definition datafile.cpp:1187
int GetTypeFromIndex(int Index) const
Definition datafile.cpp:1073
std::map< uint16_t, CItemTypeInfo, std::less<> > m_ItemTypes
Definition datafile.h:122
CDataFileWriter(CDataFileWriter &&Other)
Definition datafile.h:132
bool Open(class IStorage *pStorage, const char *pFilename, int StorageType=IStorage::TYPE_SAVE)
Definition datafile.cpp:1066
int AddDataString(const char *pStr)
Definition datafile.cpp:1206
int GetExtendedItemTypeIndex(int Type, const CUuid *pUuid)
Definition datafile.cpp:1078
int AddData(size_t Size, const void *pData, ECompressionLevel CompressionLevel=COMPRESSION_DEFAULT)
Definition datafile.cpp:1169
std::vector< CItemInfo > m_vItems
Definition datafile.h:123
int AddItem(int Type, int Id, size_t Size, const void *pData, const CUuid *pUuid=nullptr)
Definition datafile.cpp:1117
IOHANDLE m_File
Definition datafile.h:121
std::vector< CExtendedItemType > m_vExtendedItemTypes
Definition datafile.h:125
Definition datafile.cpp:140
@ TYPE_SAVE
Definition storage.h:26
std::function< std::pair< void *, size_t >(void *pData, size_t Size)> FDataProcessor
Definition datafile.h:30
@ ITEMTYPE_EX
Definition datafile.h:20
void * IOHANDLE
Definition logger.h:12
Definition uuid_manager.h:17