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

Serialize to a human-readable YAML-like format. More...

#include <DebugSerializer.h>

Inheritance diagram for CDebugSerializer:
ISerializer

Public Member Functions

 CDebugSerializer (ScriptInterface &scriptInterface, std::ostream &stream, bool includeDebugInfo=true)
 
void Comment (const std::string &comment)
 
void TextLine (const std::string &text)
 
void Indent (int spaces)
 
void Dedent (int spaces)
 
virtual bool IsDebug () const
 Returns true if the serializer is being used in debug mode. More...
 
virtual std::ostream & GetStream ()
 Returns a stream which can be used to serialize data directly. More...
 
- 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...
 

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)
 

Private Member Functions

 NONCOPYABLE (CDebugSerializer)
 

Private Attributes

ScriptInterfacem_ScriptInterface
 
std::ostream & m_Stream
 
bool m_IsDebug
 
int m_Indent
 

Detailed Description

Serialize to a human-readable YAML-like format.

Definition at line 26 of file DebugSerializer.h.

Constructor & Destructor Documentation

CDebugSerializer::CDebugSerializer ( ScriptInterface scriptInterface,
std::ostream &  stream,
bool  includeDebugInfo = true 
)
Parameters
scriptInterfaceScript interface corresponding to any jsvals passed to ScriptVal()
streamStream to receive UTF-8 encoded output
includeDebugInfoIf true then additional non-deterministic data will be included in the output

Definition at line 55 of file DebugSerializer.cpp.

Member Function Documentation

void CDebugSerializer::Comment ( const std::string &  comment)

Definition at line 73 of file DebugSerializer.cpp.

void CDebugSerializer::Dedent ( int  spaces)

Definition at line 65 of file DebugSerializer.cpp.

std::ostream & CDebugSerializer::GetStream ( )
virtual

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

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

Implements ISerializer.

Definition at line 176 of file DebugSerializer.cpp.

void CDebugSerializer::Indent ( int  spaces)

Definition at line 60 of file DebugSerializer.cpp.

bool CDebugSerializer::IsDebug ( ) const
virtual

Returns true if the serializer is being used in debug mode.

Components should serialize non-critical data (e.g. data that is unchanged from the template) only if this is true. (It must still only be used for synchronised, deterministic data.)

Reimplemented from ISerializer.

Definition at line 171 of file DebugSerializer.cpp.

CDebugSerializer::NONCOPYABLE ( CDebugSerializer  )
private
void CDebugSerializer::PutBool ( const char *  name,
bool  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 128 of file DebugSerializer.cpp.

void CDebugSerializer::PutNumber ( const char *  name,
uint8_t  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 83 of file DebugSerializer.cpp.

void CDebugSerializer::PutNumber ( const char *  name,
int8_t  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 88 of file DebugSerializer.cpp.

void CDebugSerializer::PutNumber ( const char *  name,
uint16_t  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 93 of file DebugSerializer.cpp.

void CDebugSerializer::PutNumber ( const char *  name,
int16_t  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 98 of file DebugSerializer.cpp.

void CDebugSerializer::PutNumber ( const char *  name,
uint32_t  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 103 of file DebugSerializer.cpp.

void CDebugSerializer::PutNumber ( const char *  name,
int32_t  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 108 of file DebugSerializer.cpp.

void CDebugSerializer::PutNumber ( const char *  name,
float  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 113 of file DebugSerializer.cpp.

void CDebugSerializer::PutNumber ( const char *  name,
double  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 118 of file DebugSerializer.cpp.

void CDebugSerializer::PutNumber ( const char *  name,
fixed  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 123 of file DebugSerializer.cpp.

void CDebugSerializer::PutRaw ( const char *  name,
const u8 data,
size_t  len 
)
protectedvirtual

Implements ISerializer.

Definition at line 157 of file DebugSerializer.cpp.

void CDebugSerializer::PutScriptVal ( const char *  name,
jsval  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 150 of file DebugSerializer.cpp.

void CDebugSerializer::PutString ( const char *  name,
const std::string &  value 
)
protectedvirtual

Implements ISerializer.

Definition at line 133 of file DebugSerializer.cpp.

void CDebugSerializer::TextLine ( const std::string &  text)

Definition at line 78 of file DebugSerializer.cpp.

Member Data Documentation

int CDebugSerializer::m_Indent
private

Definition at line 64 of file DebugSerializer.h.

bool CDebugSerializer::m_IsDebug
private

Definition at line 63 of file DebugSerializer.h.

ScriptInterface& CDebugSerializer::m_ScriptInterface
private

Definition at line 61 of file DebugSerializer.h.

std::ostream& CDebugSerializer::m_Stream
private

Definition at line 62 of file DebugSerializer.h.


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