13#ifndef DCM_TREE_SERIALIZATION_H
14#define DCM_TREE_SERIALIZATION_H
17 #pragma warning (push)
18 #pragma warning (disable : 4350)
22#include <boost/cstdint.hpp>
23#include <boost/limits.hpp>
86 void writeX(
const std::string &value);
93 boost::uint32_t c =
static_cast<boost::uint32_t
>(
tc);
94 writeX(&c,
sizeof(boost::uint32_t));
98 virtual void writeX(
const void *data, boost::uint32_t size) = 0;
117 virtual void readX(
void *data, boost::uint32_t size) = 0;
Interface which provides a method to deserialize an object.
virtual ~Deserializable()
Empty.
virtual void deserializeX(Source &source)=0
Overwrites data of this object with data from Source.
Interface of a class, which can be used to deserialize objects without a default constructor.
virtual T deserializeX(Source &source)=0
Deserializes an object.
virtual ~DeserializerIntf()
Interface which provides a method to serialize an object.
virtual void serializeX(Sink &sink) const =0
Writes data of this object to Sink.
virtual ~Serializable()
Empty.
Interface of a class, which can be used to serialize objects.
virtual ~SerializerIntf()
virtual void serializeX(Sink &sink, const T &value)=0
Serializes an object.
Interface of a data sink for the serialization of objects.
virtual void writeX(const void *data, boost::uint32_t size)=0
Writes a specified number of bytes.
void writeX(const std::string &value)
Writes a QString.
void writeTypeX(TypeCode tc)
Writes a TypeCode.
Interface of a data source for the deserialization of objects.
void readTypeX(TypeCode expected)
Reads a TypeCode.
void readX(std::string &value)
virtual void readX(void *data, boost::uint32_t size)=0
Reads a specified number of bytes.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
TypeCode
Used to encode type of next serialized value into the stream.
@ TC_SIGNED_LONG
signed long
@ TC_SIGNED_SHORT
signed short
@ TC_UNSIGNED_LONG_LONG
unsigned long
@ TC_SIGNED_LONG_LONG
signed long
@ TC_UNSIGNED_INT
unsigned int
@ TC_SIGNED_INT
signed int
@ TC_MULTIMAP
std::multimap
@ TC_UNSIGNED_SHORT
unsigned short
@ TC_UNSIGNED_LONG
unsigned long