#ifndef SERIALIZATION_HPP_ZFDJQSWI #define SERIALIZATION_HPP_ZFDJQSWI #include #include #include namespace vanetza { namespace geonet { /** * \brief Serialize and deserialize an object * * Source object is serialized and deserialized * object form this binary representation is returned. * * \tparam T the type of the result * \param source serialize from this object * \return deserialized object (should be equal to source) */ template T serialize_roundtrip(const T& source) { std::stringstream stream; OutputArchive oa(stream); serialize(source, oa); T result; InputArchive ia(stream); deserialize(result, ia); return result; } template std::size_t serialize_length(const T& source) { std::stringstream stream; OutputArchive oa(stream); serialize(source, oa); return stream.tellp(); } } // namespace geonet } // namespace vanetza #endif /* SERIALIZATION_HPP_ZFDJQSWI */