DDraceNetwork Docs
packer.h
Go to the documentation of this file.
1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3#ifndef ENGINE_SHARED_PACKER_H
4#define ENGINE_SHARED_PACKER_H
5
6#include <cstddef>
7
12{
13private:
14 unsigned char *const m_pBuffer;
15 const size_t m_BufferSize;
16 unsigned char *m_pCurrent;
17 unsigned char *m_pEnd;
18 bool m_Error;
19
20protected:
21 CAbstractPacker(unsigned char *pBuffer, size_t Size);
22
23public:
24 void Reset();
25 void AddInt(int i);
26 void AddString(const char *pStr, int Limit = 0, bool AllowTruncation = true);
27 void AddRaw(const void *pData, int Size);
28
29 int Size() const { return (int)(m_pCurrent - m_pBuffer); }
30 const unsigned char *Data() const { return m_pBuffer; }
31 bool Error() const { return m_Error; }
32};
33
38{
39public:
40 enum
41 {
42 PACKER_BUFFER_SIZE = 1024 * 2
43 };
46 {
47 }
48
49private:
51};
52
54{
55 const unsigned char *m_pStart;
56 const unsigned char *m_pCurrent;
57 const unsigned char *m_pEnd;
58 bool m_Error;
59
60public:
61 enum
62 {
66 };
67
68 void Reset(const void *pData, int Size);
69 int GetInt();
70 int GetIntOrDefault(int Default);
72 int GetUncompressedIntOrDefault(int Default);
73 const char *GetString(int SanitizeType = SANITIZE);
74 const unsigned char *GetRaw(int Size);
75 bool Error() const { return m_Error; }
76
77 int CompleteSize() const { return m_pEnd - m_pStart; }
78 const unsigned char *CompleteData() const { return m_pStart; }
79};
80
81#endif
Definition: packer.h:12
unsigned char * m_pCurrent
Definition: packer.h:16
bool m_Error
Definition: packer.h:18
const unsigned char * Data() const
Definition: packer.h:30
void AddRaw(const void *pData, int Size)
Definition: packer.cpp:79
unsigned char *const m_pBuffer
Definition: packer.h:14
int Size() const
Definition: packer.h:29
void AddString(const char *pStr, int Limit=0, bool AllowTruncation=true)
Definition: packer.cpp:35
const size_t m_BufferSize
Definition: packer.h:15
bool Error() const
Definition: packer.h:31
unsigned char * m_pEnd
Definition: packer.h:17
CAbstractPacker(unsigned char *pBuffer, size_t Size)
Definition: packer.cpp:8
void Reset()
Definition: packer.cpp:14
void AddInt(int i)
Definition: packer.cpp:21
Definition: packer.h:38
unsigned char m_aBuffer[PACKER_BUFFER_SIZE]
Definition: packer.h:50
@ PACKER_BUFFER_SIZE
Definition: packer.h:42
CPacker()
Definition: packer.h:44
Definition: packer.h:54
int GetInt()
Definition: packer.cpp:102
bool m_Error
Definition: packer.h:58
const unsigned char * m_pEnd
Definition: packer.h:57
const unsigned char * GetRaw(int Size)
Definition: packer.cpp:204
int GetUncompressedInt()
Definition: packer.cpp:137
void Reset(const void *pData, int Size)
Definition: packer.cpp:94
const unsigned char * m_pCurrent
Definition: packer.h:56
int GetUncompressedIntOrDefault(int Default)
Definition: packer.cpp:154
int CompleteSize() const
Definition: packer.h:77
const char * GetString(int SanitizeType=SANITIZE)
Definition: packer.cpp:167
const unsigned char * CompleteData() const
Definition: packer.h:78
@ SANITIZE
Definition: packer.h:63
@ SANITIZE_CC
Definition: packer.h:64
@ SKIP_START_WHITESPACES
Definition: packer.h:65
int GetIntOrDefault(int Default)
Definition: packer.cpp:124
bool Error() const
Definition: packer.h:75
const unsigned char * m_pStart
Definition: packer.h:55