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 boost::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:34
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:89
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. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86