3#ifndef ENGINE_SHARED_SNAPSHOT_H
4#define ENGINE_SHARED_SNAPSHOT_H
18 int *
Data() {
return (
int *)(
this + 1); }
23 const int *
Data()
const {
return (
int *)(
this + 1); }
36 int *
Offsets()
const {
return (
int *)(
this + 1); }
63 const void *
FindItem(
int Type,
int Id)
const;
70 bool IsValid(
size_t ActualSize)
const;
100 static void UndiffItem(
const int *pPast,
const int *pDiff,
int *pOut,
int Size, uint64_t *pDataRate);
103 static int DiffItem(
const int *pPast,
const int *pCurrent,
int *pOut,
int Size);
145 void Add(
int Tick, int64_t Tagtime,
size_t DataSize,
const void *pData,
size_t AltDataSize,
const void *pAltData);
174 void Init(
bool Sixup =
false);
177 void *
NewItem(
int Type,
int Id,
int Size);
182 int Finish(
void *pSnapdata);
int m_NumItems
Definition snapshot.h:160
int m_aExtendedItemTypes[MAX_EXTENDED_ITEM_TYPES]
Definition snapshot.h:162
CSnapshotItem * GetItem(int Index)
Definition snapshot.cpp:737
bool m_Sixup
Definition snapshot.h:169
void Init(bool Sixup=false)
Definition snapshot.cpp:725
char m_aData[CSnapshot::MAX_SIZE]
Definition snapshot.h:156
int m_aOffsets[CSnapshot::MAX_ITEMS]
Definition snapshot.h:159
int Finish(void *pSnapdata)
Definition snapshot.cpp:755
int m_NumExtendedItemTypes
Definition snapshot.h:163
CSnapshotBuilder()
Definition snapshot.cpp:720
void * NewItem(int Type, int Id, int Size)
Definition snapshot.cpp:813
int GetExtendedItemTypeIndex(int TypeId)
Definition snapshot.cpp:792
int * GetItemData(int Key)
Definition snapshot.cpp:742
@ MAX_EXTENDED_ITEM_TYPES
Definition snapshot.h:153
int GetTypeFromIndex(int Index) const
Definition snapshot.cpp:769
void Init7(const CSnapshot *pSnapshot)
Definition sixup_translate_snapshot.cpp:5
int m_DataSize
Definition snapshot.h:157
bool AddExtendedItemType(int Index)
Definition snapshot.cpp:774
int m_NumUpdateItems
Definition snapshot.h:84
int m_aData[1]
Definition snapshot.h:86
int m_NumTempItems
Definition snapshot.h:85
int m_NumDeletedItems
Definition snapshot.h:83
int CreateDelta(const CSnapshot *pFrom, const CSnapshot *pTo, void *pDstData)
Definition snapshot.cpp:295
CData m_Empty
Definition snapshot.h:98
short m_aItemSizes7[MAX_NETOBJSIZES]
Definition snapshot.h:95
const CData * EmptyDelta() const
Definition snapshot.cpp:289
uint64_t GetDataUpdates(int Index) const
Definition snapshot.h:107
static void UndiffItem(const int *pPast, const int *pDiff, int *pOut, int Size, uint64_t *pDataRate)
Definition snapshot.cpp:234
@ MAX_NETOBJSIZES
Definition snapshot.h:92
void SetStaticsize(int ItemType, size_t Size)
Definition snapshot.cpp:275
int UnpackDelta(const CSnapshot *pFrom, CSnapshot *pTo, const void *pSrcData, int DataSize, bool Sixup)
Definition snapshot.cpp:510
uint64_t m_aSnapshotDataRate[CSnapshot::MAX_TYPE+1]
Definition snapshot.h:96
int DebugDumpDelta(const void *pSrcData, int DataSize)
Definition snapshot.cpp:378
static int DiffItem(const int *pPast, const int *pCurrent, int *pOut, int Size)
Definition snapshot.cpp:217
uint64_t GetDataRate(int Index) const
Definition snapshot.h:106
uint64_t m_aSnapshotDataUpdates[CSnapshot::MAX_TYPE+1]
Definition snapshot.h:97
CSnapshotDelta()
Definition snapshot.cpp:257
void SetStaticsize7(int ItemType, size_t Size)
Definition snapshot.cpp:282
short m_aItemSizes[MAX_NETOBJSIZES]
Definition snapshot.h:94
void Invalidate()
Definition snapshot.h:27
int Id() const
Definition snapshot.h:25
int m_TypeAndId
Definition snapshot.h:21
const int * Data() const
Definition snapshot.h:23
int Type() const
Definition snapshot.h:24
int Key() const
Definition snapshot.h:26
friend class CSnapshotBuilder
Definition snapshot.h:16
int * Data()
Definition snapshot.h:18
Definition snapshot.h:122
int m_Tick
Definition snapshot.h:128
int m_SnapSize
Definition snapshot.h:130
int m_AltSnapSize
Definition snapshot.h:131
CHolder * m_pPrev
Definition snapshot.h:124
CHolder * m_pNext
Definition snapshot.h:125
CSnapshot * m_pAltSnap
Definition snapshot.h:134
int64_t m_Tagtime
Definition snapshot.h:127
CSnapshot * m_pSnap
Definition snapshot.h:133
~CSnapshotStorage()
Definition snapshot.h:141
CSnapshotStorage()
Definition snapshot.h:140
void PurgeAll()
Definition snapshot.cpp:621
void Add(int Tick, int64_t Tagtime, size_t DataSize, const void *pData, size_t AltDataSize, const void *pAltData)
Definition snapshot.cpp:661
void Init()
Definition snapshot.cpp:615
void PurgeUntil(int Tick)
Definition snapshot.cpp:634
CHolder * m_pLast
Definition snapshot.h:138
int Get(int Tick, int64_t *pTagtime, const CSnapshot **ppData, const CSnapshot **ppAltData) const
Definition snapshot.cpp:696
CHolder * m_pFirst
Definition snapshot.h:137
int GetExternalItemType(int InternalType) const
Definition snapshot.cpp:39
static const CSnapshot * EmptySnapshot()
Definition snapshot.h:72
int * Offsets() const
Definition snapshot.h:36
const CSnapshotItem * GetItem(int Index) const
Definition snapshot.cpp:19
size_t TotalSize() const
Definition snapshot.h:40
char * DataStart() const
Definition snapshot.h:37
int m_NumItems
Definition snapshot.h:34
const void * FindItem(int Type, int Id) const
Definition snapshot.cpp:75
int GetItemIndex(int Key) const
Definition snapshot.cpp:59
@ MAX_ID
Definition snapshot.h:49
@ MAX_ITEMS
Definition snapshot.h:50
@ MAX_SIZE
Definition snapshot.h:52
@ MAX_TYPE
Definition snapshot.h:48
@ MAX_PARTS
Definition snapshot.h:51
@ OFFSET_UUID_TYPE
Definition snapshot.h:47
int DataSize() const
Definition snapshot.h:56
int GetItemType(int Index) const
Definition snapshot.cpp:33
void InvalidateItem(int Index)
Definition snapshot.cpp:70
void DebugDump() const
Definition snapshot.cpp:123
unsigned Crc() const
Definition snapshot.cpp:108
size_t OffsetSize() const
Definition snapshot.h:39
bool IsValid(size_t ActualSize) const
Definition snapshot.cpp:136
friend class CSnapshotBuilder
Definition snapshot.h:32
int m_DataSize
Definition snapshot.h:33
int NumItems() const
Definition snapshot.h:55
static const CSnapshot ms_EmptySnapshot
Definition snapshot.h:42
int GetItemSize(int Index) const
Definition snapshot.cpp:26