diff options
author | Vladimir Byko-Ianko <v.bykoianko@corp.mail.ru> | 2017-10-31 17:27:41 +0300 |
---|---|---|
committer | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2017-10-31 17:49:30 +0300 |
commit | fa69cb0ab31abd95627389accc06ecbcad4863d5 (patch) | |
tree | f4136aade0529075c884ead00c16ec7cb42c2654 | |
parent | 8bf22f62d82f76659b00705161bb7c36112897de (diff) |
Adding operator()(TransitHeader) for FixedSizeSerializer and FixedSizeDeserializer.
-rw-r--r-- | generator/transit_generator.cpp | 4 | ||||
-rw-r--r-- | routing/transit_graph_loader.cpp | 2 | ||||
-rw-r--r-- | routing_common/routing_common_tests/transit_test.cpp | 6 | ||||
-rw-r--r-- | routing_common/transit_serdes.hpp | 10 | ||||
-rw-r--r-- | routing_common/transit_types.hpp | 11 |
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 { |