9 #include <vlutil/vlString.h>
49 virtual bool serializeObject(
const luabind::object& lobj,
DtString& 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,
DtString& buffer);
67 virtual bool loadLuaScriptGlobals(lua_State* state,
const DtString& buffer);
72 virtual void addKeyToIgnore(
const std::string&);
75 virtual void removeKeyToIgnore(
const std::string&);
79 virtual const char* parseBufferToTableKeyVals(lua_State* state, luabind::object& table,
const char* buffer);
83 virtual void parseTableKeyValsToBuffer(
const luabind::object&,
DtString& buffer,
84 std::vector<luabind::object> stackParameters);
86 virtual void applyStandardEscapes(
DtString& buffer);
87 virtual void unapplyStandardEscapes(
DtString& buffer);
88 virtual bool isKeyToIgnore(
const DtString& keyName);
89 virtual bool IsALoadedPackage(lua_State * L,
const char * tableName);
95 std::map<DtString, DtSerializableCreatorFunc>
myCreators;
118 T* obj = luaTypeCastNoThrow<T>(lobj);
122 serializedString += obj->serialize();
129 template<
typename T,
typename Parent>
134 Parent* pobj = luaTypeCastNoThrow<Parent>(lobj);
135 T* obj =
dynamic_cast<T*
>(pobj);
139 serializedString += obj->serialize();
162 luabind::object lobj(state, *(dynamic_cast<T*>(obj)));
172 return luabind::object();
177 lua_State* state,
const DtString& typeName,
const DtString& serializedString)
182 boost::shared_ptr<T> obj(static_cast<T*>(deserializer->
createInstance(typeName, serializedString)));
183 if (obj.get() && obj->objectType() == typeName)
185 obj->deserialize(serializedString);
186 return luabind::object(state, obj);
190 return luabind::object();