Changeset View
Changeset View
Standalone View
Standalone View
source/simulation2/serialization/StdDeserializer.h
Show All 27 Lines | |||||
class CStdDeserializer : public IDeserializer | class CStdDeserializer : public IDeserializer | ||||
{ | { | ||||
NONCOPYABLE(CStdDeserializer); | NONCOPYABLE(CStdDeserializer); | ||||
public: | public: | ||||
CStdDeserializer(const ScriptInterface& scriptInterface, std::istream& stream); | CStdDeserializer(const ScriptInterface& scriptInterface, std::istream& stream); | ||||
virtual ~CStdDeserializer(); | virtual ~CStdDeserializer(); | ||||
virtual void ScriptVal(const char* name, JS::MutableHandleValue out); | virtual void ScriptVal(const char* name, JS::MutableHandleValue out); | ||||
virtual void ScriptObjectAppend(const char* name, JS::HandleValue objVal); | virtual void ScriptObjectAssign(const char* name, JS::HandleValue objVal); | ||||
virtual void ScriptString(const char* name, JS::MutableHandleString out); | virtual void ScriptString(const char* name, JS::MutableHandleString out); | ||||
virtual std::istream& GetStream(); | virtual std::istream& GetStream(); | ||||
virtual void RequireBytesInStream(size_t numBytes); | virtual void RequireBytesInStream(size_t numBytes); | ||||
static void Trace(JSTracer *trc, void *data); | static void Trace(JSTracer *trc, void *data); | ||||
void TraceMember(JSTracer *trc); | void TraceMember(JSTracer *trc); | ||||
protected: | protected: | ||||
virtual void Get(const char* name, u8* data, size_t len); | virtual void Get(const char* name, u8* data, size_t len); | ||||
private: | private: | ||||
JS::Value ReadScriptVal(const char* name, JS::HandleObject appendParent); | JS::Value ReadScriptVal(const char* name, JS::HandleObject preexistingObject); | ||||
void ReadStringLatin1(const char* name, std::vector<JS::Latin1Char>& str); | void ReadStringLatin1(const char* name, std::vector<JS::Latin1Char>& str); | ||||
void ReadStringUTF16(const char* name, utf16string& str); | void ReadStringUTF16(const char* name, utf16string& str); | ||||
virtual void AddScriptBackref(JS::HandleObject obj); | virtual void AddScriptBackref(JS::HandleObject obj); | ||||
virtual void GetScriptBackref(size_t tag, JS::MutableHandleObject ret); | virtual void GetScriptBackref(size_t tag, JS::MutableHandleObject ret); | ||||
std::vector<JS::Heap<JSObject*> > m_ScriptBackrefs; | std::vector<JS::Heap<JSObject*> > m_ScriptBackrefs; | ||||
const ScriptInterface& m_ScriptInterface; | const ScriptInterface& m_ScriptInterface; | ||||
std::istream& m_Stream; | std::istream& m_Stream; | ||||
}; | }; | ||||
#endif // INCLUDED_STDDESERIALIZER | #endif // INCLUDED_STDDESERIALIZER |
Wildfire Games · Phabricator