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:
authorVladimir Byko-Ianko <v.bykoianko@corp.mail.ru>2017-10-31 17:27:41 +0300
committerDaria Volvenkova <d.volvenkova@corp.mail.ru>2017-10-31 17:49:30 +0300
commitfa69cb0ab31abd95627389accc06ecbcad4863d5 (patch)
treef4136aade0529075c884ead00c16ec7cb42c2654
parent8bf22f62d82f76659b00705161bb7c36112897de (diff)
Adding operator()(TransitHeader) for FixedSizeSerializer and FixedSizeDeserializer.
-rw-r--r--generator/transit_generator.cpp4
-rw-r--r--routing/transit_graph_loader.cpp2
-rw-r--r--routing_common/routing_common_tests/transit_test.cpp6
-rw-r--r--routing_common/transit_serdes.hpp10
-rw-r--r--routing_common/transit_types.hpp11
5 files changed, 14 insertions, 19 deletions
diff --git a/generator/transit_generator.cpp b/generator/transit_generator.cpp
index e1d7e44f39..3f9b59731b 100644
--- a/generator/transit_generator.cpp
+++ b/generator/transit_generator.cpp
@@ -283,7 +283,7 @@ void BuildTransit(string const & mwmDir, string const & countryId,
auto const startOffset = w.Pos();
Serializer<FileWriter> serializer(w);
FixedSizeSerializer<FileWriter> numberSerializer(w);
- VisitHeader(numberSerializer, header);
+ numberSerializer(header);
vector<Stop> stops;
DeserializeFromJson(root, "stops", mapping, stops);
@@ -319,7 +319,7 @@ void BuildTransit(string const & mwmDir, string const & countryId,
CHECK(header.IsValid(), (header));
auto const endOffset = w.Pos();
w.Seek(startOffset);
- VisitHeader(numberSerializer, header);
+ numberSerializer(header);
w.Seek(endOffset);
LOG(LINFO, (TRANSIT_FILE_TAG, "section is ready. Header:", header));
}
diff --git a/routing/transit_graph_loader.cpp b/routing/transit_graph_loader.cpp
index 07c7182b4b..cffce6b41b 100644
--- a/routing/transit_graph_loader.cpp
+++ b/routing/transit_graph_loader.cpp
@@ -62,7 +62,7 @@ unique_ptr<TransitGraph> TransitGraphLoader::CreateTransitGraph(NumMwmId numMwmI
transit::FixedSizeDeserializer<ReaderSource<FilesContainerR::TReader>> numberDeserializer(src);
transit::TransitHeader header;
- VisitHeader(numberDeserializer, header);
+ numberDeserializer(header);
vector<transit::Stop> stops;
deserializer(stops);
diff --git a/routing_common/routing_common_tests/transit_test.cpp b/routing_common/routing_common_tests/transit_test.cpp
index 646236a407..585a76c22b 100644
--- a/routing_common/routing_common_tests/transit_test.cpp
+++ b/routing_common/routing_common_tests/transit_test.cpp
@@ -61,14 +61,14 @@ UNIT_TEST(Transit_HeaderRewriting)
// Writing.
FixedSizeSerializer<MemWriter<vector<uint8_t>>> serializer(writer);
- VisitHeader(serializer, header);
+ serializer(header);
auto const endOffset = writer.Pos();
// Rewriting.
header = bigHeader;
writer.Seek(0 /* start offset */);
- VisitHeader(serializer, header);
+ serializer(header);
TEST_EQUAL(writer.Pos(), endOffset, ());
// Reading.
@@ -76,7 +76,7 @@ UNIT_TEST(Transit_HeaderRewriting)
ReaderSource<MemReader> src(reader);
TransitHeader deserializedHeader;
FixedSizeDeserializer<ReaderSource<MemReader>> deserializer(src);
- VisitHeader(deserializer, deserializedHeader);
+ deserializer(deserializedHeader);
TEST(deserializedHeader.IsEqualForTesting(bigHeader), (deserializedHeader, bigHeader));
}
diff --git a/routing_common/transit_serdes.hpp b/routing_common/transit_serdes.hpp
index a4a939cb31..869258293a 100644
--- a/routing_common/transit_serdes.hpp
+++ b/routing_common/transit_serdes.hpp
@@ -233,6 +233,8 @@ public:
WriteToSink(m_sink, t);
}
+ void operator()(TransitHeader const & header) { header.Visit(*this); }
+
private:
Sink & m_sink;
};
@@ -250,14 +252,10 @@ public:
ReadPrimitiveFromSource(m_source, t);
}
+ void operator()(TransitHeader & header) { header.Visit(*this); }
+
private:
Source & m_source;
};
-
-template <class T>
-void VisitHeader(T & t, TransitHeader & header)
-{
- header.Visit(t);
-}
} // namespace transit
} // namespace routing
diff --git a/routing_common/transit_types.hpp b/routing_common/transit_types.hpp
index 965ea6de8b..4e3efc503e 100644
--- a/routing_common/transit_types.hpp
+++ b/routing_common/transit_types.hpp
@@ -14,8 +14,6 @@ namespace routing
{
namespace transit
{
-struct TransitHeader;
-
using Anchor = uint8_t;
using FeatureId = uint32_t;
using LineId = uint32_t;
@@ -39,14 +37,13 @@ TransferId constexpr kInvalidTransferId = std::numeric_limits<TransferId>::max()
Weight constexpr kInvalidWeight = -1.0;
#define DECLARE_TRANSIT_TYPE_FRIENDS \
- template <class Sink> \
- friend class Serializer; \
- template <class Source> \
- friend class Deserializer; \
+ template <class Sink> friend class Serializer; \
+ template <class Source> friend class Deserializer; \
friend class DeserializerFromJson; \
template <class Ser, class Deser, class Obj> \
friend void TestCommonSerialization(Obj const & obj); \
- template <class T> friend void VisitHeader(T & t, TransitHeader & header); \
+ template <typename Sink> friend class FixedSizeSerializer; \
+ template <typename Sink> friend class FixedSizeDeserializer; \
struct TransitHeader
{