DDNet documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
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
11
class
CAbstractPacker
12
{
13
private
:
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
20
protected
:
21
CAbstractPacker
(
unsigned
char
*pBuffer,
size_t
Size
);
22
23
public
:
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
37
class
CPacker
:
public
CAbstractPacker
38
{
39
public
:
40
enum
41
{
42
PACKER_BUFFER_SIZE
= 1024 * 2
43
};
44
CPacker
() :
45
CAbstractPacker
(
m_aBuffer
, sizeof(
m_aBuffer
))
46
{
47
}
48
49
private
:
50
unsigned
char
m_aBuffer
[
PACKER_BUFFER_SIZE
];
51
};
52
53
class
CUnpacker
54
{
55
const
unsigned
char
*
m_pStart
;
56
const
unsigned
char
*
m_pCurrent
;
57
const
unsigned
char
*
m_pEnd
;
58
bool
m_Error
;
59
60
public
:
61
enum
62
{
63
SANITIZE
= 1,
64
SANITIZE_CC
= 2,
65
SKIP_START_WHITESPACES
= 4
66
};
67
68
void
Reset
(
const
void
*pData,
int
Size);
69
int
GetInt
();
70
int
GetIntOrDefault
(
int
Default);
71
int
GetUncompressedInt
();
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
CAbstractPacker::m_pCurrent
unsigned char * m_pCurrent
Definition
packer.h:16
CAbstractPacker::m_Error
bool m_Error
Definition
packer.h:18
CAbstractPacker::Data
const unsigned char * Data() const
Definition
packer.h:30
CAbstractPacker::AddRaw
void AddRaw(const void *pData, int Size)
Definition
packer.cpp:81
CAbstractPacker::m_pBuffer
unsigned char *const m_pBuffer
Definition
packer.h:14
CAbstractPacker::Size
int Size() const
Definition
packer.h:29
CAbstractPacker::AddString
void AddString(const char *pStr, int Limit=0, bool AllowTruncation=true)
Definition
packer.cpp:37
CAbstractPacker::m_BufferSize
const size_t m_BufferSize
Definition
packer.h:15
CAbstractPacker::Error
bool Error() const
Definition
packer.h:31
CAbstractPacker::m_pEnd
unsigned char * m_pEnd
Definition
packer.h:17
CAbstractPacker::CAbstractPacker
CAbstractPacker(unsigned char *pBuffer, size_t Size)
Definition
packer.cpp:10
CAbstractPacker::Reset
void Reset()
Definition
packer.cpp:16
CAbstractPacker::AddInt
void AddInt(int i)
Definition
packer.cpp:23
CPacker::m_aBuffer
unsigned char m_aBuffer[PACKER_BUFFER_SIZE]
Definition
packer.h:50
CPacker::PACKER_BUFFER_SIZE
@ PACKER_BUFFER_SIZE
Definition
packer.h:42
CPacker::CPacker
CPacker()
Definition
packer.h:44
CUnpacker
Definition
packer.h:54
CUnpacker::GetInt
int GetInt()
Definition
packer.cpp:104
CUnpacker::m_Error
bool m_Error
Definition
packer.h:58
CUnpacker::m_pEnd
const unsigned char * m_pEnd
Definition
packer.h:57
CUnpacker::GetRaw
const unsigned char * GetRaw(int Size)
Definition
packer.cpp:206
CUnpacker::GetUncompressedInt
int GetUncompressedInt()
Definition
packer.cpp:139
CUnpacker::Reset
void Reset(const void *pData, int Size)
Definition
packer.cpp:96
CUnpacker::m_pCurrent
const unsigned char * m_pCurrent
Definition
packer.h:56
CUnpacker::SANITIZE
@ SANITIZE
Definition
packer.h:63
CUnpacker::SANITIZE_CC
@ SANITIZE_CC
Definition
packer.h:64
CUnpacker::SKIP_START_WHITESPACES
@ SKIP_START_WHITESPACES
Definition
packer.h:65
CUnpacker::GetUncompressedIntOrDefault
int GetUncompressedIntOrDefault(int Default)
Definition
packer.cpp:156
CUnpacker::CompleteSize
int CompleteSize() const
Definition
packer.h:77
CUnpacker::GetString
const char * GetString(int SanitizeType=SANITIZE)
Definition
packer.cpp:169
CUnpacker::CompleteData
const unsigned char * CompleteData() const
Definition
packer.h:78
CUnpacker::GetIntOrDefault
int GetIntOrDefault(int Default)
Definition
packer.cpp:126
CUnpacker::Error
bool Error() const
Definition
packer.h:75
CUnpacker::m_pStart
const unsigned char * m_pStart
Definition
packer.h:55
src
engine
shared
packer.h
Generated by
1.18.0