9 #include <vlutil/vlString.h>
49 virtual bool serializeObject(
const luabind::object& lobj, std::string& buffer, std::vector<luabind::object> stackParameters);
54 virtual const char* deserializeObject(lua_State* state,
const char* buffer, luabind::object& lobj);
56 virtual bool doesSerializerExist(
const DtString& type);
64 virtual bool saveLuaScriptGlobals(lua_State* state, std::string &buffer);
67 virtual bool saveLuaScriptTable(lua_State* state,
const std::string& key,
const luabind::object& lobj, std::string &buffer);
70 virtual bool loadLuaScriptGlobals(lua_State* state,
const DtString& buffer);
75 virtual void addKeyToIgnore(
const std::string&);
78 virtual void removeKeyToIgnore(
const std::string&);
82 virtual const char* parseBufferToTableKeyVals(lua_State* state, luabind::object& table,
const char* buffer);
86 virtual void parseTableKeyValsToBuffer(
const luabind::object&, std::string& buffer,
87 std::vector<luabind::object> stackParameters);
89 virtual bool needsEscaping(
const DtString& buffer)
const;
90 virtual void applyStandardEscapes(
DtString& buffer);
91 virtual bool needsUnescaping(
DtString& buffer)
const;
92 virtual void unapplyStandardEscapes(
DtString& buffer);
93 virtual bool isKeyToIgnore(
const DtString& keyName);
94 virtual bool IsALoadedPackage(lua_State * L,
const char * tableName);
98 virtual const char* nextToken(
char separator,
const char*
buf,
DtString& tok);
123 T* obj = luaTypeCastNoThrow<T>(lobj);
127 serializedString += obj->serialize();
134 template<
typename T,
typename Parent>
139 Parent* pobj = luaTypeCastNoThrow<Parent>(lobj);
140 T* obj =
dynamic_cast<T*
>(pobj);
144 serializedString += obj->serialize();
167 luabind::object lobj(state, *(dynamic_cast<T*>(obj)));
177 return luabind::object();
182 lua_State* state,
const DtString& typeName,
const DtString& serializedString)
187 boost::shared_ptr<T> obj(static_cast<T*>(deserializer->
createInstance(typeName, serializedString)));
188 if (obj.get() && obj->objectType() == typeName)
190 obj->deserialize(serializedString);
191 return luabind::object(state, obj);
195 return luabind::object();
DtSimManager * mySimManager
Definition: luaObjectSerializer.h:103
std::map< DtString, DtSerializableCreatorFunc > myCreators
Definition: luaObjectSerializer.h:100
DtAsciiSerializable *(* DtSerializableCreatorFunc)()
Definition: luaObjectSerializer.h:18
DtTemplatedException< 300 > DtStateParseException
Definition: luaObjectSerializer.h:72
std::map< DtString, DtSerializerFunc > mySerializers
Definition: luaObjectSerializer.h:101
std::set< std::string > myKeysToIgnore
When serializing, ignore these keys.
Definition: luaObjectSerializer.h:107
Definition: asciiSerializable.h:33
virtual bool deserialize(const DtString &)=0
This function should take the string that was serialized via serialize() and fill this object with th...
virtual Instance * createInstance()
Definition: bdiQPropTree_subclasses.h:693
Definition: luaObjectSerializer.h:22
voidpf void * buf
Definition: ioapi.h:39
static DtLuaObjectSerializer * instance()
Returns the static instance of this class.
luabind::object(* DtDeserializerFunc)(lua_State *state, const DtString &typeName, const DtString &serializedString)
Definition: luaObjectSerializer.h:19
#define DT_DLL_vrfLua
This file is used to determine how to build.
Definition: vrfLuaDefines.h:25
virtual DtAsciiSerializable * createInstance(const DtString &typeName, const DtString &serializedString)
Registers a DtAsciiSerializable creator function.
virtual DtString objectType() const =0
Should return the string name of this object.
bool DtAsciiSerializeLua(const luabind::object &lobj, DtString &serializedString)
This is a templated function that is used and registered to the serializer for each object we have de...
Definition: luaObjectSerializer.h:119
bool(* DtSerializerFunc)(const luabind::object &, DtString &serializedString)
Definition: luaObjectSerializer.h:20
luabind::object DtAsciiDeserializeLuaSharedPtr(lua_State *state, const DtString &typeName, const DtString &serializedString)
Definition: luaObjectSerializer.h:181
luabind::object DtAsciiDeserializeLua(lua_State *state, const DtString &typeName, const DtString &serializedString)
This is a templated function that is used and registered to the (de)serializer for each object we hav...
Definition: luaObjectSerializer.h:158
std::map< DtString, DtDeserializerFunc > myDeserializers
Definition: luaObjectSerializer.h:102
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
static DtLuaObjectSerializer * theInstance
Definition: luaObjectSerializer.h:104