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
CStdDeserializer Class Reference

#include <StdDeserializer.h>

Inheritance diagram for CStdDeserializer:
IDeserializer

Public Member Functions

 CStdDeserializer (ScriptInterface &scriptInterface, std::istream &stream)
 
virtual ~CStdDeserializer ()
 
virtual void ScriptVal (const char *name, jsval &out)
 Deserialize a jsval, replacing 'out'. More...
 
virtual void ScriptVal (const char *name, CScriptVal &out)
 
virtual void ScriptVal (const char *name, CScriptValRooted &out)
 
virtual void ScriptObjectAppend (const char *name, jsval &obj)
 Deserialize an object jsval, appending properties to object 'obj'. More...
 
virtual void ScriptString (const char *name, JSString *&out)
 Deserialize a JSString. More...
 
virtual std::istream & GetStream ()
 Returns a stream which can be used to deserialize data directly. More...
 
virtual void RequireBytesInStream (size_t numBytes)
 Throws an exception if the stream definitely cannot provide the required number of bytes. More...
 
virtual void SetSerializablePrototypes (std::map< std::wstring, JSObject * > &prototypes)
 
- Public Member Functions inherited from IDeserializer
virtual ~IDeserializer ()
 
virtual void NumberU8 (const char *name, uint8_t &out, uint8_t lower, uint8_t upper)
 
virtual void NumberI8 (const char *name, int8_t &out, int8_t lower, int8_t upper)
 
virtual void NumberU16 (const char *name, uint16_t &out, uint16_t lower, uint16_t upper)
 
virtual void NumberI16 (const char *name, int16_t &out, int16_t lower, int16_t upper)
 
virtual void NumberU32 (const char *name, uint32_t &out, uint32_t lower, uint32_t upper)
 
virtual void NumberI32 (const char *name, int32_t &out, int32_t lower, int32_t upper)
 
virtual void NumberU8_Unbounded (const char *name, uint8_t &out)
 
virtual void NumberI8_Unbounded (const char *name, int8_t &out)
 
virtual void NumberU16_Unbounded (const char *name, uint16_t &out)
 
virtual void NumberI16_Unbounded (const char *name, int16_t &out)
 
virtual void NumberU32_Unbounded (const char *name, uint32_t &out)
 
virtual void NumberI32_Unbounded (const char *name, int32_t &out)
 
virtual void NumberFloat_Unbounded (const char *name, float &out)
 
virtual void NumberDouble_Unbounded (const char *name, double &out)
 
virtual void NumberFixed_Unbounded (const char *name, fixed &out)
 
virtual void Bool (const char *name, bool &out)
 
virtual void StringASCII (const char *name, std::string &out, uint32_t minlength, uint32_t maxlength)
 
virtual void String (const char *name, std::wstring &out, uint32_t minlength, uint32_t maxlength)
 
virtual void RawBytes (const char *name, u8 *data, size_t len)
 
virtual int GetVersion () const
 

Protected Member Functions

virtual void Get (const char *name, u8 *data, size_t len)
 

Private Member Functions

 NONCOPYABLE (CStdDeserializer)
 
jsval ReadScriptVal (const char *name, JSObject *appendParent)
 
void ReadStringUTF16 (const char *name, utf16string &str)
 
virtual void AddScriptBackref (JSObject *obj)
 
virtual JSObject * GetScriptBackref (u32 tag)
 
virtual u32 ReserveScriptBackref ()
 
virtual void SetReservedScriptBackref (u32 tag, JSObject *obj)
 
void FreeScriptBackrefs ()
 
bool IsSerializablePrototype (const std::wstring &name)
 
JSObject * GetSerializablePrototype (const std::wstring &name)
 

Private Attributes

std::map< u32, JSObject * > m_ScriptBackrefs
 
ScriptInterfacem_ScriptInterface
 
std::istream & m_Stream
 
std::map< std::wstring,
JSObject * > 
m_SerializablePrototypes
 

Detailed Description

Definition at line 27 of file StdDeserializer.h.

Constructor & Destructor Documentation

CStdDeserializer::CStdDeserializer ( ScriptInterface scriptInterface,
std::istream &  stream 
)

Definition at line 59 of file StdDeserializer.cpp.

CStdDeserializer::~CStdDeserializer ( )
virtual

Definition at line 64 of file StdDeserializer.cpp.

Member Function Documentation

void CStdDeserializer::AddScriptBackref ( JSObject *  obj)
privatevirtual

Definition at line 111 of file StdDeserializer.cpp.

void CStdDeserializer::FreeScriptBackrefs ( )
private

Definition at line 139 of file StdDeserializer.cpp.

void CStdDeserializer::Get ( const char *  name,
u8 data,
size_t  len 
)
protectedvirtual

Implements IDeserializer.

Definition at line 69 of file StdDeserializer.cpp.

JSObject * CStdDeserializer::GetScriptBackref ( u32  tag)
privatevirtual

Definition at line 119 of file StdDeserializer.cpp.

JSObject * CStdDeserializer::GetSerializablePrototype ( const std::wstring &  name)
private

Definition at line 459 of file StdDeserializer.cpp.

std::istream & CStdDeserializer::GetStream ( )
virtual

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

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

Implements IDeserializer.

Definition at line 92 of file StdDeserializer.cpp.

bool CStdDeserializer::IsSerializablePrototype ( const std::wstring &  name)
private

Definition at line 454 of file StdDeserializer.cpp.

CStdDeserializer::NONCOPYABLE ( CStdDeserializer  )
private
jsval CStdDeserializer::ReadScriptVal ( const char *  name,
JSObject *  appendParent 
)
private

Definition at line 152 of file StdDeserializer.cpp.

void CStdDeserializer::ReadStringUTF16 ( const char *  name,
utf16string str 
)
private

Definition at line 403 of file StdDeserializer.cpp.

void CStdDeserializer::RequireBytesInStream ( size_t  numBytes)
virtual

Throws an exception if the stream definitely cannot provide the required number of bytes.

(It might be conservative and not throw an exception in some cases where the stream actually can't provide the required bytes.) (This should be used when allocating memory based on data in the stream, e.g. reading strings, to avoid dangerously large allocations when the data is invalid.)

Implements IDeserializer.

Definition at line 97 of file StdDeserializer.cpp.

u32 CStdDeserializer::ReserveScriptBackref ( )
privatevirtual

Definition at line 127 of file StdDeserializer.cpp.

void CStdDeserializer::ScriptObjectAppend ( const char *  name,
jsval &  obj 
)
virtual

Deserialize an object jsval, appending properties to object 'obj'.

Implements IDeserializer.

Definition at line 441 of file StdDeserializer.cpp.

void CStdDeserializer::ScriptString ( const char *  name,
JSString *&  out 
)
virtual

Deserialize a JSString.

Implements IDeserializer.

Definition at line 412 of file StdDeserializer.cpp.

void CStdDeserializer::ScriptVal ( const char *  name,
jsval &  out 
)
virtual

Deserialize a jsval, replacing 'out'.

Implements IDeserializer.

Definition at line 426 of file StdDeserializer.cpp.

void CStdDeserializer::ScriptVal ( const char *  name,
CScriptVal out 
)
virtual

Implements IDeserializer.

Definition at line 431 of file StdDeserializer.cpp.

void CStdDeserializer::ScriptVal ( const char *  name,
CScriptValRooted out 
)
virtual

Implements IDeserializer.

Definition at line 436 of file StdDeserializer.cpp.

void CStdDeserializer::SetReservedScriptBackref ( u32  tag,
JSObject *  obj 
)
privatevirtual

Definition at line 133 of file StdDeserializer.cpp.

void CStdDeserializer::SetSerializablePrototypes ( std::map< std::wstring, JSObject * > &  prototypes)
virtual

Definition at line 449 of file StdDeserializer.cpp.

Member Data Documentation

std::map<u32, JSObject*> CStdDeserializer::m_ScriptBackrefs
private

Definition at line 57 of file StdDeserializer.h.

ScriptInterface& CStdDeserializer::m_ScriptInterface
private

Definition at line 58 of file StdDeserializer.h.

std::map<std::wstring, JSObject*> CStdDeserializer::m_SerializablePrototypes
private

Definition at line 62 of file StdDeserializer.h.

std::istream& CStdDeserializer::m_Stream
private

Definition at line 60 of file StdDeserializer.h.


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