SerializationProxy¶
- 
class SerializationProxy¶
 A SerializationProxy is an object that knows how to serialize and deserialize objects of a particular type. This is an abstract class. Subclasses implement the logic for serializing particular types of logic.
A global registry maintains the list of what SerializationProxy to use for each type of object. Call registerProxy() to register the proxy for a particular type. This is typically done at application startup or by a dynamic library’s initialization code.
Public Functions
- 
SerializationProxy(const std::string &typeName)¶
 Create a new SerializationProxy.
- Parameters:
 typeName – the name of the object type this proxy knows how to serialize. This name is stored in the output stream during serialization, and is used to select a proxy during deserialization. This typically is the class name, although that is not a requirement.
- 
const std::string &getTypeName() const¶
 Get the name of the object type this proxy manipulates, as passed to the constructor.
- 
virtual void serialize(const void *object, SerializationNode &node) const = 0¶
 Subclasses implement this method to record information about an object being serialized.
- Parameters:
 object – a pointer to the object being serialized
node – all data to be serialized should be stored into this node, either directly as properties or indirectly by adding child nodes to it
- 
virtual void *deserialize(const SerializationNode &node) const = 0¶
 Reconstruct an object from its serialized data.
- Parameters:
 node – a SerializationNode containing the object’s description
- Returns:
 a pointer to a new object created from the data. The caller assumes ownership of the object.
Public Static Functions
- 
static void registerProxy(const std::type_info &type, const SerializationProxy *proxy)¶
 Register a SerializationProxy to be used for objects of a particular type.
- Parameters:
 type – the type_info for the object type
proxy – the proxy to use for objects of the specified type
- 
static const SerializationProxy &getProxy(const std::string &typeName)¶
 Get the SerializationProxy to use for objects of a particular type, specified by name.
- Parameters:
 typeName – the name of the object type to get a proxy for
- 
static const SerializationProxy &getProxy(const std::type_info &type)¶
 Get the SerializationProxy to use for objects of a particular type, specified by type_info.
- Parameters:
 type – the type_info of the object type to get a proxy for
- 
SerializationProxy(const std::string &typeName)¶