18 #ifndef INCLUDED_STDDESERIALIZER
19 #define INCLUDED_STDDESERIALIZER
38 virtual void ScriptString(
const char* name, JSString*& out);
46 virtual void Get(
const char* name,
u8* data,
size_t len);
49 jsval
ReadScriptVal(
const char* name, JSObject* appendParent);
68 #endif // INCLUDED_STDDESERIALIZER
CStdDeserializer(ScriptInterface &scriptInterface, std::istream &stream)
void FreeScriptBackrefs()
ScriptInterface & m_ScriptInterface
static void out(const wchar_t *fmt,...)
virtual JSObject * GetScriptBackref(u32 tag)
A trivial wrapper around a jsval.
virtual std::istream & GetStream()
Returns a stream which can be used to deserialize data directly.
JSObject * GetSerializablePrototype(const std::wstring &name)
virtual void ScriptVal(const char *name, jsval &out)
Deserialize a jsval, replacing 'out'.
virtual u32 ReserveScriptBackref()
virtual void RequireBytesInStream(size_t numBytes)
Throws an exception if the stream definitely cannot provide the required number of bytes...
virtual void Get(const char *name, u8 *data, size_t len)
bool IsSerializablePrototype(const std::wstring &name)
std::map< u32, JSObject * > m_ScriptBackrefs
virtual void SetReservedScriptBackref(u32 tag, JSObject *obj)
std::basic_string< utf16_t, utf16_traits > utf16string
virtual void ScriptObjectAppend(const char *name, jsval &obj)
Deserialize an object jsval, appending properties to object 'obj'.
std::map< std::wstring, JSObject * > m_SerializablePrototypes
void ReadStringUTF16(const char *name, utf16string &str)
NONCOPYABLE(CStdDeserializer)
Abstraction around a SpiderMonkey JSContext.
virtual ~CStdDeserializer()
jsval ReadScriptVal(const char *name, JSObject *appendParent)
virtual void SetSerializablePrototypes(std::map< std::wstring, JSObject * > &prototypes)
virtual void ScriptString(const char *name, JSString *&out)
Deserialize a JSString.
virtual void AddScriptBackref(JSObject *obj)
Deserialization interface; see serialization overview.