9 #include <vlutil/vlString.h>
14 #include "vlutil/vlExceptions.h"
51 virtual bool serializeObject(
const luabind::object& lobj, std::string& buffer, std::vector<luabind::object> stackParameters);
56 virtual const char* deserializeObject(lua_State* state,
const char* buffer, luabind::object& lobj,
DtLocalObject* owner);
58 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);
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,
DtLocalObject* owner);
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();
187 std::shared_ptr<T> obj(static_cast<T*>(deserializer->
createInstance(typeName, serializedString, owner)));
188 if (obj.get() && obj->objectType() == typeName)
190 obj->deserialize(serializedString);
191 return luabind::object(state, obj);
195 return luabind::object();
std::map< DtString, DtSerializableCreatorFunc > myCreators
Definition: luaObjectSerializer.h:100
DtAsciiSerializable *(* DtSerializableCreatorFunc)()
Definition: luaObjectSerializer.h:20
virtual DtAsciiSerializable * createInstance(const DtString &typeName, const DtString &serializedString, DtLocalObject *owner)
Registers a DtAsciiSerializable creator function. It should create a default object with default valu...
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:40
virtual bool deserialize(const DtString &)=0
This function should take the string that was serialized via serialize() and fill this object with th...
Definition: luaObjectSerializer.h:24
voidpf void * buf
Definition: ioapi.h:39
luabind::object DtAsciiDeserializeLua(lua_State *state, const DtString &typeName, const DtString &serializedString, DtLocalObject *owner)
This is a templated function that is used and registered to the (de)serializer for each object we hav...
Definition: luaObjectSerializer.h:158
static DtLuaObjectSerializer * instance()
Returns the static instance of this class.
luabind::object(* DtDeserializerFunc)(lua_State *state, const DtString &typeName, const DtString &serializedString, DtLocalObject *)
Definition: luaObjectSerializer.h:21
#define DT_DLL_vrfLua
This file is used to determine how to build.
Definition: vrfLuaDefines.h:25
virtual DtString objectType() const =0
Should return the string name of this object. The object name should not be part of the serialization...
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
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
luabind::object DtAsciiDeserializeLuaSharedPtr(lua_State *state, const DtString &typeName, const DtString &serializedString, DtLocalObject *owner)
Definition: luaObjectSerializer.h:181
bool(* DtSerializerFunc)(const luabind::object &, DtString &serializedString)
Definition: luaObjectSerializer.h:22
DtSimulationServices * mySimulationServices
Definition: luaObjectSerializer.h:103
std::map< DtString, DtDeserializerFunc > myDeserializers
Definition: luaObjectSerializer.h:102
static DtLuaObjectSerializer * theInstance
Definition: luaObjectSerializer.h:104
A locally simulated VRF object.
Definition: localObject.h:98