#ifndef HEADER_VARIANT_HPP #define HEADER_VARIANT_HPP #include #include #include #include #include #include namespace vanetza { namespace geonet { typedef boost::variant HeaderVariant; typedef boost::variant HeaderRefVariant; typedef boost::variant HeaderConstRefVariant; /** \brief get the length of the underlying header type * * \param header the header to get the length from * \return std::size_t * */ std::size_t get_length(const HeaderVariant& header); std::size_t get_length(const HeaderRefVariant& header); std::size_t get_length(const HeaderConstRefVariant& header); } // namespace geonet } // namespace vanetza namespace boost { /** \brief serialize the underlying header type to an OutputArchive * * \param header the header to serialize * \param ar the archive to write to * */ void serialize(const vanetza::geonet::HeaderVariant& header, vanetza::OutputArchive& ar); void serialize(const vanetza::geonet::HeaderRefVariant& header, vanetza::OutputArchive& ar); void serialize(const vanetza::geonet::HeaderConstRefVariant& header, vanetza::OutputArchive& ar); } // namespace boost #endif // HEADER_VARIANT_HPP