19 #ifndef OMNI_SERIALIZATION_POINTER_H_
20 #define OMNI_SERIALIZATION_POINTER_H_
28 namespace serialization {
31 template<
typename STREAM,
typename F>
33 auto _id = deserializeReturn<Id>(_stream,
Id(
"none"));
35 if (_id ==
"none")
return _stream;
41 _obj->fromStream(_stream);
51 template<
typename T,
bool BASE_OF_SERIALIZATION_INTERFACE>
52 struct Write<T *, BASE_OF_SERIALIZATION_INTERFACE>{
53 template<
typename STREAM,
typename OBJ>
61 _t->toStream(_stream);
66 template<
typename T,
typename DELETER,
bool BASE_OF_SERIALIZATION_INTERFACE>
67 struct Write<std::unique_ptr<T, DELETER>, BASE_OF_SERIALIZATION_INTERFACE>:
68 Write<T *, BASE_OF_SERIALIZATION_INTERFACE>{};
77 template<
typename STREAM,
typename F,
typename ... ARGS>
STREAM & operator()(STREAM &_stream, OBJ const &_t)
Definition: pointer.h:54
Id type for classes An Id must only contain alpha numerical characters and must begin with a letter...
Definition: Id.h:34
STREAM & serialize(STREAM &_stream, T const &_t)
Serialize object to stream.
Definition: traits.h:140
STREAM & deserializePtr(STREAM &_stream, F _f, ARGS &&..._args)
Deserialize a pointer from stream. Functor f must return a pointer which is constructed from a facto...
Definition: pointer.h:78
STREAM & operator()(STREAM &_stream, F _f)
Definition: pointer.h:32
An exception that occurs during Serialization.
Definition: exception.h:86