Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'ugc/binary/header_v0.hpp')
-rw-r--r--ugc/binary/header_v0.hpp58
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;
}