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();