A tool for deserializing classes with specific issues deserializing them. More...
#include <serialization.h>
Public Member Functions | |
virtual String | ContainerName () const =0 |
This will return the Name of the element that Contains multiple of the items to be DeSerialized. More... | |
virtual std::istream & | DeSerialize (std::istream &Stream) |
Get the serialized version of all the live data from the stream. More... | |
virtual std::istream & | DeSerializeAll (std::istream &Stream) |
Get One node that has several of the appropriate kinds of nodes as children and deserialize all of them. More... | |
virtual DeSerializable * | ProtoDeSerialize (const XML::Node &OneNode)=0 |
Convert An XML Node into a complete live data structure. More... | |
virtual void | ProtoDeSerializeAll (const XML::Node &OneNode) |
Convert An XML Node into a complete series of live class instances. More... | |
A tool for deserializing classes with specific issues deserializing them.
Some classes Must have certain values available at the time of construction. This make deserializing them by overwriting an existing class instance impractical.
This is expected to work with classes that have implemented the required DeSerializable functions. Specifically This makes use of "static String SerializableName()", and it is expected that functions that must be implemented would call on "void ProtoDeSerialize(const XML::Node&)". The type of this template is expected to match what this is deserializing.
This was designed with the idea that a manager could inherit from this or have a separate class that implements this as a member. There should also be no reason why something could not inherit from this and Mezzanine::Serializer.
Definition at line 351 of file serialization.h.
|
pure virtual |
This will return the Name of the element that Contains multiple of the items to be DeSerialized.
Implemented in Mezzanine::Physics::CollisionShapeDeSerializer.
|
inlinevirtual |
Get the serialized version of all the live data from the stream.
Stream | The std::istream to get the data from. |
The default implementation of this uses ProtoDeSerializeAll(XML::Node*) to accept The complete XML to serialise and assemble it in memory.
Reimplemented in Mezzanine::Physics::CollisionShapeDeSerializer.
Definition at line 392 of file serialization.h.
|
inlinevirtual |
Get One node that has several of the appropriate kinds of nodes as children and deserialize all of them.
Stream | The std::istream to get the data from. |
The default implementation of this uses ProtoDeSerializeAll(XML::Node&) to accept11 The complete XML to serialise and assemble it in memory.
Definition at line 374 of file serialization.h.
|
pure virtual |
Convert An XML Node into a complete live data structure.
OneNode | A reference to the XML node to reconstitute into a live class instance. |
Not implemented in default serializer.
Implemented in Mezzanine::Physics::CollisionShapeDeSerializer.
|
inlinevirtual |
Convert An XML Node into a complete series of live class instances.
OneNode | A reference to the XML node to reconstitute into multiple Live classes. |
This is expected to put the deserialized items somewhere they can be accessed by the calling, but provides no facility for working them itself.
Not implemented in default DeSerializer.
Definition at line 359 of file serialization.h.