Pyrogenesis  trunk
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 >:
Inheritance graph
[legend]
Collaboration diagram for CBinarySerializer< T >:
Collaboration graph
[legend]

Public Member Functions

 CBinarySerializer (ScriptInterface &scriptInterface)
 
template<typename A >
 CBinarySerializer (ScriptInterface &scriptInterface, A &a)
 
virtual void SetSerializablePrototypes (shared_ptr< ObjectIdCache< 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, JS::MutableHandleValue value)
 Serialize a JS::MutableHandleValue. 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, JS::MutableHandleValue 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::unique_ptr< CBinarySerializerScriptImplm_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.)

Constructor & Destructor Documentation

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

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.

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.

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

Implements ISerializer.

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

Implements ISerializer.

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

Implements ISerializer.

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

Implements ISerializer.

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

Implements ISerializer.

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

Implements ISerializer.

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

Implements ISerializer.

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

Implements ISerializer.

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

Implements ISerializer.

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

Implements ISerializer.

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

Implements ISerializer.

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

Implements ISerializer.

template<typename T>
virtual void CBinarySerializer< T >::SetSerializablePrototypes ( shared_ptr< ObjectIdCache< std::wstring > > &  prototypes)
inlinevirtual

Member Data Documentation

template<typename T>
T CBinarySerializer< T >::m_Impl
protected
template<typename T>
std::ostream CBinarySerializer< T >::m_RawStream
private
template<typename T>
CSerializerStreamBuf<T> CBinarySerializer< T >::m_RawStreamBuf
private
template<typename T>
std::unique_ptr<CBinarySerializerScriptImpl> CBinarySerializer< T >::m_ScriptImpl
private

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