Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/simulation2/serialization/StdDeserializer.h
/* Copyright (C) 2017 Wildfire Games. | /* Copyright (C) 2020 Wildfire Games. | ||||
* This file is part of 0 A.D. | * This file is part of 0 A.D. | ||||
* | * | ||||
* 0 A.D. is free software: you can redistribute it and/or modify | * 0 A.D. is free software: you can redistribute it and/or modify | ||||
* it under the terms of the GNU General Public License as published by | * it under the terms of the GNU General Public License as published by | ||||
* the Free Software Foundation, either version 2 of the License, or | * the Free Software Foundation, either version 2 of the License, or | ||||
* (at your option) any later version. | * (at your option) any later version. | ||||
* | * | ||||
* 0 A.D. is distributed in the hope that it will be useful, | * 0 A.D. is distributed in the hope that it will be useful, | ||||
Show All 23 Lines | public: | ||||
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 ScriptObjectAppend(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); | ||||
virtual void SetSerializablePrototypes(std::map<std::wstring, JS::Heap<JSObject*> >& prototypes); | |||||
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 appendParent); | ||||
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(u32 tag, JS::MutableHandleObject ret); | virtual void GetScriptBackref(u32 tag, JS::MutableHandleObject ret); | ||||
std::vector<JS::Heap<JSObject*> > m_ScriptBackrefs; | std::vector<JS::Heap<JSObject*> > m_ScriptBackrefs; | ||||
JS::PersistentRooted<JSObject*> m_dummyObject; | JS::PersistentRooted<JSObject*> m_dummyObject; | ||||
const ScriptInterface& m_ScriptInterface; | const ScriptInterface& m_ScriptInterface; | ||||
std::istream& m_Stream; | std::istream& m_Stream; | ||||
std::map<std::wstring, JS::Heap<JSObject*> > m_SerializablePrototypes; | |||||
bool IsSerializablePrototype(const std::wstring& name); | |||||
void GetSerializablePrototype(const std::wstring& name, JS::MutableHandleObject ret); | |||||
}; | }; | ||||
#endif // INCLUDED_STDDESERIALIZER | #endif // INCLUDED_STDDESERIALIZER |
Wildfire Games · Phabricator