Pyrogenesis  13997
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
CBinarySerializer< T > Class Template Reference

Serialize to a binary stream. More...

#include <BinarySerializer.h>

Inheritance diagram for CBinarySerializer< T >:
ISerializer

Public Member Functions

 CBinarySerializer (ScriptInterface &scriptInterface)
 
template<typename A >
 CBinarySerializer (ScriptInterface &scriptInterface, A &a)
 
virtual void SetSerializablePrototypes (std::map< JSObject *, std::wstring > &prototypes)
 
- Public Member Functions inherited from ISerializer
virtual ~ISerializer ()
 
void NumberU8 (const char *name, uint8_t value, uint8_t lower, uint8_t upper)
 Serialize a number, which must be lower <= value <= upper. More...
 
void NumberI8 (const char *name, int8_t value, int8_t lower, int8_t upper)
 
void NumberU16 (const char *name, uint16_t value, uint16_t lower, uint16_t upper)
 Serialize a number, which must be lower <= value <= upper. More...
 
void NumberI16 (const char *name, int16_t value, int16_t lower, int16_t upper)
 Serialize a number, which must be lower <= value <= upper. More...
 
void NumberU32 (const char *name, uint32_t value, uint32_t lower, uint32_t upper)
 Serialize a number, which must be lower <= value <= upper. More...
 
void NumberI32 (const char *name, int32_t value, int32_t lower, int32_t upper)
 Serialize a number, which must be lower <= value <= upper. More...
 
void NumberU8_Unbounded (const char *name, uint8_t value)
 Serialize a number. More...
 
void NumberI8_Unbounded (const char *name, int8_t value)
 Serialize a number. More...
 
void NumberU16_Unbounded (const char *name, uint16_t value)
 Serialize a number. More...
 
void NumberI16_Unbounded (const char *name, int16_t value)
 Serialize a number. More...
 
void NumberU32_Unbounded (const char *name, uint32_t value)
 Serialize a number. More...
 
void NumberI32_Unbounded (const char *name, int32_t value)
 Serialize a number. More...
 
void NumberFloat_Unbounded (const char *name, float value)
 Serialize a number. More...
 
void NumberDouble_Unbounded (const char *name, double value)
 Serialize a number. More...
 
void NumberFixed_Unbounded (const char *name, fixed value)
 Serialize a number. More...
 
void Bool (const char *name, bool value)
 Serialize a boolean. More...
 
void StringASCII (const char *name, const std::string &value, uint32_t minlength, uint32_t maxlength)
 Serialize an ASCII string. More...
 
void String (const char *name, const std::wstring &value, uint32_t minlength, uint32_t maxlength)
 Serialize a Unicode string. More...
 
void ScriptVal (const char *name, jsval value)
 Serialize a jsval. More...
 
void ScriptVal (const char *name, CScriptVal value)
 Serialize a CScriptVal. More...
 
void ScriptVal (const char *name, CScriptValRooted value)
 Serialize a CScriptValRooted. More...
 
void RawBytes (const char *name, const u8 *data, size_t len)
 Serialize a stream of bytes. More...
 
virtual bool IsDebug () const
 Returns true if the serializer is being used in debug mode. More...
 

Protected Member Functions

virtual void PutNumber (const char *name, uint8_t value)
 
virtual void PutNumber (const char *name, int8_t value)
 
virtual void PutNumber (const char *name, uint16_t value)
 
virtual void PutNumber (const char *name, int16_t value)
 
virtual void PutNumber (const char *name, uint32_t value)
 
virtual void PutNumber (const char *name, int32_t value)
 
virtual void PutNumber (const char *name, float value)
 
virtual void PutNumber (const char *name, double value)
 
virtual void PutNumber (const char *name, fixed value)
 
virtual void PutBool (const char *name, bool value)
 
virtual void PutString (const char *name, const std::string &value)
 
virtual void PutScriptVal (const char *name, jsval value)
 
virtual void PutRaw (const char *name, const u8 *data, size_t len)
 
virtual std::ostream & GetStream ()
 Returns a stream which can be used to serialize data directly. More...
 

Protected Attributes

T m_Impl
 

Private Member Functions

 NONCOPYABLE (CBinarySerializer)
 

Private Attributes

std::auto_ptr
< CBinarySerializerScriptImpl
m_ScriptImpl
 
CSerializerStreamBuf< Tm_RawStreamBuf
 
std::ostream m_RawStream
 

Detailed Description

template<typename T>
class CBinarySerializer< T >

Serialize to a binary stream.

T must just implement the Put() method. (We use this templated approach to allow compiler inlining.)

Definition at line 89 of file BinarySerializer.h.

Constructor & Destructor Documentation

template<typename T>
CBinarySerializer< T >::CBinarySerializer ( ScriptInterface scriptInterface)
inline

Definition at line 93 of file BinarySerializer.h.

template<typename T>
template<typename A >
CBinarySerializer< T >::CBinarySerializer ( ScriptInterface scriptInterface,
A &  a 
)
inline

Definition at line 101 of file BinarySerializer.h.

Member Function Documentation

template<typename T>
virtual std::ostream& CBinarySerializer< T >::GetStream ( )
inlineprotectedvirtual

Returns a stream which can be used to serialize data directly.

(This is particularly useful for chaining multiple serializers together.)

Implements ISerializer.

Reimplemented in CStdSerializer.

Definition at line 198 of file BinarySerializer.h.

template<typename T>
CBinarySerializer< T >::NONCOPYABLE ( CBinarySerializer< T )
private
template<typename T>
virtual void CBinarySerializer< T >::PutBool ( const char *  name,
bool  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 176 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutNumber ( const char *  name,
uint8_t  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 126 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutNumber ( const char *  name,
int8_t  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 131 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutNumber ( const char *  name,
uint16_t  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 136 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutNumber ( const char *  name,
int16_t  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 142 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutNumber ( const char *  name,
uint32_t  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 148 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutNumber ( const char *  name,
int32_t  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 154 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutNumber ( const char *  name,
float  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 160 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutNumber ( const char *  name,
double  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 165 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutNumber ( const char *  name,
fixed  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 170 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutRaw ( const char *  name,
const u8 data,
size_t  len 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 193 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutScriptVal ( const char *  name,
jsval  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 188 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::PutString ( const char *  name,
const std::string &  value 
)
inlineprotectedvirtual

Implements ISerializer.

Definition at line 181 of file BinarySerializer.h.

template<typename T>
virtual void CBinarySerializer< T >::SetSerializablePrototypes ( std::map< JSObject *, std::wstring > &  prototypes)
inlinevirtual

Definition at line 109 of file BinarySerializer.h.

Member Data Documentation

template<typename T>
T CBinarySerializer< T >::m_Impl
protected

Definition at line 204 of file BinarySerializer.h.

template<typename T>
std::ostream CBinarySerializer< T >::m_RawStream
private

Definition at line 210 of file BinarySerializer.h.

template<typename T>
CSerializerStreamBuf<T> CBinarySerializer< T >::m_RawStreamBuf
private

Definition at line 209 of file BinarySerializer.h.

template<typename T>
std::auto_ptr<CBinarySerializerScriptImpl> CBinarySerializer< T >::m_ScriptImpl
private

Definition at line 207 of file BinarySerializer.h.


The documentation for this class was generated from the following file: