XmlSerializer

class OpenMM::XmlSerializer

XmlSerializer is used for serializing objects as XML, and for reconstructing them again.

Public Static Functions

template<class T>
static inline void serialize(const T *object, const std::string &rootName, std::ostream &stream)

Serialize an object as XML.

Parameters
  • object – the object to serialize

  • rootName – the name to use for the root node of the XML document

  • stream – an output stream to write the XML to

template<class T>
static inline T *deserialize(std::istream &stream)

Reconstruct an object that has been serialized as XML.

Parameters

stream – an input stream to read the XML from

Returns

a pointer to the newly created object. The caller assumes ownership of the object.

template<class T>
static inline T *clone(const T &object)

Clone an object by first serializing it, then deserializing it again. This method constructs the new object directly from the SerializationNodes without first converting them to XML. This means it is faster and uses less memory than making separate calls to serialize() and deserialize().