diff options
Diffstat (limited to 'ugc/binary/header_v0.hpp')
-rw-r--r-- | ugc/binary/header_v0.hpp | 58 |
1 files changed, 4 insertions, 54 deletions
diff --git a/ugc/binary/header_v0.hpp b/ugc/binary/header_v0.hpp index be5846d2a3..3c3914693f 100644 --- a/ugc/binary/header_v0.hpp +++ b/ugc/binary/header_v0.hpp @@ -1,6 +1,7 @@ #pragma once #include "coding/reader.hpp" +#include "coding/serdes_binary_header.hpp" #include "coding/write_to_sink.hpp" #include <cstdint> @@ -9,57 +10,6 @@ namespace ugc { namespace binary { -namespace impl -{ -struct HeaderSizeOfVisitor -{ - void operator()(uint64_t v, char const * /* name */ = nullptr) { m_size += sizeof(v); } - - template <typename R> - void operator()(R & r, char const * /* name */ = nullptr) - { - r.Visit(*this); - } - - uint64_t m_size = 0; -}; - -template <typename Sink> -struct HeaderSerVisitor -{ - HeaderSerVisitor(Sink & sink) : m_sink(sink) {} - - void operator()(uint64_t v, char const * /* name */ = nullptr) { WriteToSink(m_sink, v); } - - template <typename R> - void operator()(R & r, char const * /* name */ = nullptr) - { - r.Visit(*this); - } - - Sink & m_sink; -}; - -template <typename Source> -struct HeaderDesVisitor -{ - HeaderDesVisitor(Source & source): m_source(source) {} - - void operator()(uint64_t & v, char const * /* name */ = nullptr) - { - v = ReadPrimitiveFromSource<uint64_t>(m_source); - } - - template <typename R> - void operator()(R & r, char const * /* name */ = nullptr) - { - r.Visit(*this); - } - - Source & m_source; -}; -} // namespace impl - struct HeaderV0 { template <typename Visitor> @@ -75,21 +25,21 @@ struct HeaderV0 template <typename Sink> void Serialize(Sink & sink) { - impl::HeaderSerVisitor<Sink> visitor(sink); + coding::binary::HeaderSerVisitor<Sink> visitor(sink); visitor(*this); } template <typename Source> void Deserialize(Source & source) { - impl::HeaderDesVisitor<Source> visitor(source); + coding::binary::HeaderDesVisitor<Source> visitor(source); visitor(*this); } // Calculates the size of serialized header in bytes. uint64_t Size() { - impl::HeaderSizeOfVisitor visitor; + coding::binary::HeaderSizeOfVisitor visitor; visitor(*this); return visitor.m_size; } |