forked from organicmaps/organicmaps
Review fixes.
This commit is contained in:
parent
2c34655148
commit
bfd51dc7f8
25 changed files with 107 additions and 150 deletions
|
@ -36,17 +36,13 @@ void CollectorAddresses::Save()
|
|||
stream << m_stringStream.str();
|
||||
}
|
||||
|
||||
void CollectorAddresses::Merge(CollectorInterface const * collector)
|
||||
void CollectorAddresses::Merge(CollectorInterface const & collector)
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->MergeInto(const_cast<CollectorAddresses *>(this));
|
||||
collector.MergeInto(*this);
|
||||
}
|
||||
|
||||
void CollectorAddresses::MergeInto(CollectorAddresses * collector) const
|
||||
void CollectorAddresses::MergeInto(CollectorAddresses & collector) const
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->m_stringStream << m_stringStream.str();
|
||||
collector.m_stringStream << m_stringStream.str();
|
||||
}
|
||||
} // namespace generator
|
||||
|
|
|
@ -16,7 +16,7 @@ class IntermediateDataReader;
|
|||
class CollectorAddresses : public CollectorInterface
|
||||
{
|
||||
public:
|
||||
CollectorAddresses(std::string const & filename);
|
||||
explicit CollectorAddresses(std::string const & filename);
|
||||
|
||||
// CollectorInterface overrides:
|
||||
std::shared_ptr<CollectorInterface>
|
||||
|
@ -25,8 +25,8 @@ public:
|
|||
void CollectFeature(feature::FeatureBuilder const & feature, OsmElement const &) override;
|
||||
void Save() override;
|
||||
|
||||
void Merge(CollectorInterface const * collector) override;
|
||||
void MergeInto(CollectorAddresses * collector) const override;
|
||||
void Merge(CollectorInterface const & collector) override;
|
||||
void MergeInto(CollectorAddresses & collector) const override;
|
||||
|
||||
private:
|
||||
std::stringstream m_stringStream;
|
||||
|
|
|
@ -155,24 +155,21 @@ void CameraCollector::Write(FileWriter & writer, CameraProcessor::CameraInfo con
|
|||
|
||||
void CameraCollector::Save()
|
||||
{
|
||||
LOG(LINFO, ("void CameraCollector::Save()"));
|
||||
using namespace std::placeholders;
|
||||
m_processor.FillCameraInWays();
|
||||
FileWriter writer(GetFilename());
|
||||
m_processor.ForEachCamera(std::bind(&CameraCollector::Write, this, std::ref(writer), _1, _2));
|
||||
m_processor.ForEachCamera([&](auto const & camera, auto const & ways) {
|
||||
Write(writer, camera, ways);
|
||||
});
|
||||
}
|
||||
|
||||
void CameraCollector::Merge(generator::CollectorInterface const * collector)
|
||||
void CameraCollector::Merge(generator::CollectorInterface const & collector)
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->MergeInto(const_cast<CameraCollector *>(this));
|
||||
collector.MergeInto(*this);
|
||||
}
|
||||
|
||||
void CameraCollector::MergeInto(CameraCollector * collector) const
|
||||
void CameraCollector::MergeInto(CameraCollector & collector) const
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->m_processor.Merge(this->m_processor);
|
||||
collector.m_processor.Merge(this->m_processor);
|
||||
}
|
||||
} // namespace routing
|
||||
|
|
|
@ -90,14 +90,13 @@ public:
|
|||
void CollectFeature(feature::FeatureBuilder const & feature, OsmElement const & element) override;
|
||||
void Save() override;
|
||||
|
||||
void Merge(generator::CollectorInterface const * collector) override;
|
||||
void MergeInto(CameraCollector * collector) const override;
|
||||
void Merge(generator::CollectorInterface const & collector) override;
|
||||
void MergeInto(CameraCollector & collector) const override;
|
||||
|
||||
private:
|
||||
void Write(FileWriter & writer, CameraProcessor::CameraInfo const & camera,
|
||||
std::vector<uint64_t> const & ways);
|
||||
|
||||
std::vector<uint8_t> m_buffer;
|
||||
CameraProcessor m_processor;
|
||||
};
|
||||
} // namespace routing
|
||||
|
|
|
@ -37,18 +37,14 @@ void CityBoundaryCollector::Save()
|
|||
}
|
||||
}
|
||||
|
||||
void CityBoundaryCollector::Merge(generator::CollectorInterface const * collector)
|
||||
void CityBoundaryCollector::Merge(generator::CollectorInterface const & collector)
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->MergeInto(const_cast<CityBoundaryCollector *>(this));
|
||||
collector.MergeInto(*this);
|
||||
}
|
||||
|
||||
void CityBoundaryCollector::MergeInto(CityBoundaryCollector * collector) const
|
||||
void CityBoundaryCollector::MergeInto(CityBoundaryCollector & collector) const
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
std::copy(std::begin(m_boundaries), std::end(m_boundaries),
|
||||
std::back_inserter(collector->m_boundaries));
|
||||
std::back_inserter(collector.m_boundaries));
|
||||
}
|
||||
} // namespace generator
|
||||
|
|
|
@ -25,8 +25,8 @@ public:
|
|||
void CollectFeature(feature::FeatureBuilder const & feature, OsmElement const &) override;
|
||||
void Save() override;
|
||||
|
||||
void Merge(generator::CollectorInterface const * collector) override;
|
||||
void MergeInto(CityBoundaryCollector * collector) const override;
|
||||
void Merge(generator::CollectorInterface const & collector) override;
|
||||
void MergeInto(CityBoundaryCollector & collector) const override;
|
||||
|
||||
private:
|
||||
std::vector<feature::FeatureBuilder> m_boundaries;
|
||||
|
|
|
@ -13,7 +13,7 @@ CollectorCollection::Clone(std::shared_ptr<cache::IntermediateDataReader> const
|
|||
{
|
||||
auto p = std::make_shared<CollectorCollection>();
|
||||
for (auto const & c : m_collection)
|
||||
p->Append(c->Clone(cache));
|
||||
p->Append(c->Clone(cache));
|
||||
return p;
|
||||
}
|
||||
|
||||
|
@ -41,20 +41,16 @@ void CollectorCollection::Save()
|
|||
c->Save();
|
||||
}
|
||||
|
||||
void CollectorCollection::Merge(CollectorInterface const * collector)
|
||||
void CollectorCollection::Merge(CollectorInterface const & collector)
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->MergeInto(const_cast<CollectorCollection *>(this));
|
||||
collector.MergeInto(*this);
|
||||
}
|
||||
|
||||
void CollectorCollection::MergeInto(CollectorCollection * collector) const
|
||||
void CollectorCollection::MergeInto(CollectorCollection & collector) const
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
auto & otherCollection = collector->m_collection;
|
||||
auto & otherCollection = collector.m_collection;
|
||||
CHECK_EQUAL(m_collection.size(), otherCollection.size(), ());
|
||||
for (size_t i = 0; i < m_collection.size(); ++i)
|
||||
otherCollection[i]->Merge(m_collection[i].get());
|
||||
otherCollection[i]->Merge(*m_collection[i]);
|
||||
}
|
||||
} // namespace generator
|
||||
|
|
|
@ -33,7 +33,7 @@ public:
|
|||
void CollectFeature(feature::FeatureBuilder const & feature, OsmElement const & element) override;
|
||||
void Save() override;
|
||||
|
||||
void Merge(CollectorInterface const * collector) override;
|
||||
void MergeInto(CollectorCollection * collector) const override;
|
||||
void Merge(CollectorInterface const & collector) override;
|
||||
void MergeInto(CollectorCollection & collector) const override;
|
||||
};
|
||||
} // namespace generator
|
||||
|
|
|
@ -59,23 +59,23 @@ public:
|
|||
virtual void CollectFeature(feature::FeatureBuilder const &, OsmElement const &) {}
|
||||
virtual void Save() = 0;
|
||||
|
||||
virtual void Merge(CollectorInterface const *) = 0;
|
||||
virtual void Merge(CollectorInterface const &) = 0;
|
||||
|
||||
virtual void MergeInto(CityBoundaryCollector *) const { FailIfMethodUnsuppirted(); }
|
||||
virtual void MergeInto(routing::CameraCollector *) const { FailIfMethodUnsuppirted(); }
|
||||
virtual void MergeInto(routing::RestrictionWriter *) const { FailIfMethodUnsuppirted(); }
|
||||
virtual void MergeInto(routing::RoadAccessWriter *) const { FailIfMethodUnsuppirted(); }
|
||||
virtual void MergeInto(CollectorAddresses *) const { FailIfMethodUnsuppirted(); }
|
||||
virtual void MergeInto(CollectorTag *) const { FailIfMethodUnsuppirted(); }
|
||||
virtual void MergeInto(MaxspeedsCollector *) const { FailIfMethodUnsuppirted(); }
|
||||
virtual void MergeInto(feature::MetalinesBuilder *) const { FailIfMethodUnsuppirted(); }
|
||||
virtual void MergeInto(regions::CollectorRegionInfo *) const { FailIfMethodUnsuppirted(); }
|
||||
virtual void MergeInto(CollectorCollection *) const { FailIfMethodUnsuppirted(); }
|
||||
virtual void MergeInto(CityBoundaryCollector &) const { FailIfMethodUnsupported(); }
|
||||
virtual void MergeInto(routing::CameraCollector &) const { FailIfMethodUnsupported(); }
|
||||
virtual void MergeInto(routing::RestrictionWriter &) const { FailIfMethodUnsupported(); }
|
||||
virtual void MergeInto(routing::RoadAccessWriter &) const { FailIfMethodUnsupported(); }
|
||||
virtual void MergeInto(CollectorAddresses &) const { FailIfMethodUnsupported(); }
|
||||
virtual void MergeInto(CollectorTag &) const { FailIfMethodUnsupported(); }
|
||||
virtual void MergeInto(MaxspeedsCollector &) const { FailIfMethodUnsupported(); }
|
||||
virtual void MergeInto(feature::MetalinesBuilder &) const { FailIfMethodUnsupported(); }
|
||||
virtual void MergeInto(regions::CollectorRegionInfo &) const { FailIfMethodUnsupported(); }
|
||||
virtual void MergeInto(CollectorCollection &) const { FailIfMethodUnsupported(); }
|
||||
|
||||
std::string const & GetFilename() const { return m_filename; }
|
||||
|
||||
private:
|
||||
void FailIfMethodUnsuppirted() const { CHECK(false, ("This method is unsupported.")); }
|
||||
void FailIfMethodUnsupported() const { CHECK(false, ("This method is unsupported.")); }
|
||||
|
||||
std::string m_filename;
|
||||
};
|
||||
|
|
|
@ -50,17 +50,13 @@ void CollectorTag::Save()
|
|||
}
|
||||
}
|
||||
|
||||
void CollectorTag::Merge(CollectorInterface const * collector)
|
||||
void CollectorTag::Merge(CollectorInterface const & collector)
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->MergeInto(const_cast<CollectorTag *>(this));
|
||||
collector.MergeInto(*this);
|
||||
}
|
||||
|
||||
void CollectorTag::MergeInto(CollectorTag * collector) const
|
||||
void CollectorTag::MergeInto(CollectorTag & collector) const
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->m_stream << this->m_stream.str();
|
||||
collector.m_stream << m_stream.str();
|
||||
}
|
||||
} // namespace generator
|
||||
|
|
|
@ -38,8 +38,8 @@ public:
|
|||
void Collect(OsmElement const & el) override;
|
||||
void Save() override;
|
||||
|
||||
void Merge(CollectorInterface const * collector) override;
|
||||
void MergeInto(CollectorTag * collector) const override;
|
||||
void Merge(CollectorInterface const & collector) override;
|
||||
void MergeInto(CollectorTag & collector) const override;
|
||||
private:
|
||||
std::stringstream m_stream;
|
||||
std::string m_tagKey;
|
||||
|
|
|
@ -6,10 +6,10 @@
|
|||
#include "generator/collector_interface.hpp"
|
||||
#include "generator/collector_tag.hpp"
|
||||
|
||||
#include "base/geo_object_id.hpp"
|
||||
|
||||
#include "platform/platform.hpp"
|
||||
|
||||
#include "base/geo_object_id.hpp"
|
||||
|
||||
#include <fstream>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
@ -38,7 +38,7 @@ UNIT_TEST(MergeCollector_Case1)
|
|||
collector2->Collect(MakeOsmElement(3 /* id */, {{"admin_level", "3"}}, OsmElement::EntityType::Relation));
|
||||
collector2->Collect(MakeOsmElement(4 /* id */, {{"admin_level", "4"}}, OsmElement::EntityType::Relation));
|
||||
|
||||
collector1->Merge(collector2.get());
|
||||
collector1->Merge(*collector2);
|
||||
collector1->Save();
|
||||
|
||||
std::vector<std::string> const answers = {
|
||||
|
@ -72,7 +72,7 @@ UNIT_TEST(MergeCollector_Case2)
|
|||
collection2->Collect(MakeOsmElement(3 /* id */, {{"admin_level", "3"}}, OsmElement::EntityType::Relation));
|
||||
collection2->Collect(MakeOsmElement(4 /* id */, {{"admin_level", "4"}}, OsmElement::EntityType::Relation));
|
||||
|
||||
collection1->Merge(collection2.get());
|
||||
collection1->Merge(*collection2);
|
||||
collection1->Save();
|
||||
|
||||
std::vector<std::string> const answers = {
|
||||
|
|
|
@ -14,7 +14,8 @@ using namespace feature;
|
|||
|
||||
namespace
|
||||
{
|
||||
OsmElement MakeHighway(uint64_t id, std::string const & name, std::vector<uint64_t> const & nodes, bool isOneway = false)
|
||||
OsmElement MakeHighway(uint64_t id, std::string const & name, std::vector<uint64_t> const & nodes,
|
||||
bool isOneway = false)
|
||||
{
|
||||
OsmElement element;
|
||||
element.m_id = id;
|
||||
|
@ -44,7 +45,7 @@ LineStringMerger::InputData MakeInputData(std::vector<OsmElement> const & elemen
|
|||
return inputData;
|
||||
};
|
||||
|
||||
bool IsEquil(LineStringMerger::LinePtr const & lineString, std::vector<int32_t> const & ways)
|
||||
bool IsEqual(LineStringMerger::LinePtr const & lineString, std::vector<int32_t> const & ways)
|
||||
{
|
||||
auto const & w = lineString->GetWays();
|
||||
return w == ways;
|
||||
|
@ -83,7 +84,7 @@ UNIT_TEST(MetalinesTest_Case1)
|
|||
auto const key = MakeKey(w1);
|
||||
TEST_EQUAL(outputData.size(), 1 /* unique names roads count */, ());
|
||||
TEST_EQUAL(outputData.at(key)[0]->GetWays().size(), 2 /* merged way size */, ());
|
||||
TEST(IsEquil(outputData.at(key)[0], {1, 2}) /* merged way */, ());
|
||||
TEST(IsEqual(outputData.at(key)[0], {1, 2}) /* merged way */, ());
|
||||
}
|
||||
|
||||
UNIT_TEST(MetalinesTest_Case2)
|
||||
|
@ -94,7 +95,7 @@ UNIT_TEST(MetalinesTest_Case2)
|
|||
auto const key = MakeKey(w1);
|
||||
TEST_EQUAL(outputData.size(), 1 /* unique names roads count */, ());
|
||||
TEST_EQUAL(outputData.at(key)[0]->GetWays().size(), 3 /* merged way size */, ());
|
||||
TEST(IsEquil(outputData.at(key)[0], {1, 2, 3}) /* merged way */, ());
|
||||
TEST(IsEqual(outputData.at(key)[0], {1, 2, 3}) /* merged way */, ());
|
||||
}
|
||||
|
||||
UNIT_TEST(MetalinesTest_Case3)
|
||||
|
@ -107,10 +108,10 @@ UNIT_TEST(MetalinesTest_Case3)
|
|||
TEST_EQUAL(outputData.at(key).size(), 2 /* ways count */, ());
|
||||
|
||||
TEST_EQUAL(outputData.at(key)[0]->GetWays().size(), 2 /* merged way size */, ());
|
||||
TEST(IsEquil(outputData.at(key)[0], {1, 2}) /* merged way */, ());
|
||||
TEST(IsEqual(outputData.at(key)[0], {1, 2}) /* merged way */, ());
|
||||
|
||||
TEST_EQUAL(outputData.at(key)[1]->GetWays().size(), 2 /* merged way size */, ());
|
||||
TEST(IsEquil(outputData.at(key)[1], {4, 5}) /* merged way */, ());
|
||||
TEST(IsEqual(outputData.at(key)[1], {4, 5}) /* merged way */, ());
|
||||
}
|
||||
|
||||
UNIT_TEST(MetalinesTest_Case4)
|
||||
|
@ -121,7 +122,7 @@ UNIT_TEST(MetalinesTest_Case4)
|
|||
auto const key = MakeKey(w1);
|
||||
TEST_EQUAL(outputData.size(), 1 /* unique names roads count */, ());
|
||||
TEST_EQUAL(outputData.at(key).size(), 1 /* ways count */, ());
|
||||
TEST(IsEquil(outputData.at(key)[0], {6, -1}) /* merged way */, ());
|
||||
TEST(IsEqual(outputData.at(key)[0], {6, -1}) /* merged way */, ());
|
||||
}
|
||||
|
||||
UNIT_TEST(MetalinesTest_Case5)
|
||||
|
@ -132,7 +133,7 @@ UNIT_TEST(MetalinesTest_Case5)
|
|||
auto const key = MakeKey(w1);
|
||||
TEST_EQUAL(outputData.size(), 1 /* unique names roads count */, ());
|
||||
TEST_EQUAL(outputData.at(key).size(), 1 /* ways count */, ());
|
||||
TEST(IsEquil(outputData.at(key)[0], {1, 2}) /* merged way */, ());
|
||||
TEST(IsEqual(outputData.at(key)[0], {1, 2}) /* merged way */, ());
|
||||
}
|
||||
|
||||
UNIT_TEST(MetalinesTest_Case6)
|
||||
|
|
|
@ -39,10 +39,10 @@ MaxspeedsCollector::MaxspeedsCollector(string const & filename)
|
|||
: CollectorInterface(filename) {}
|
||||
|
||||
|
||||
std::shared_ptr<CollectorInterface>
|
||||
MaxspeedsCollector::Clone(std::shared_ptr<cache::IntermediateDataReader> const &) const
|
||||
shared_ptr<CollectorInterface>
|
||||
MaxspeedsCollector::Clone(shared_ptr<cache::IntermediateDataReader> const &) const
|
||||
{
|
||||
return std::make_shared<MaxspeedsCollector>(GetFilename());
|
||||
return make_shared<MaxspeedsCollector>(GetFilename());
|
||||
}
|
||||
|
||||
void MaxspeedsCollector::CollectFeature(FeatureBuilder const &, OsmElement const & p)
|
||||
|
@ -125,17 +125,13 @@ void MaxspeedsCollector::Save()
|
|||
LOG(LINFO, ("Wrote", m_data.size(), "maxspeed tags to", GetFilename()));
|
||||
}
|
||||
|
||||
void MaxspeedsCollector::Merge(CollectorInterface const * collector)
|
||||
void MaxspeedsCollector::Merge(CollectorInterface const & collector)
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->MergeInto(const_cast<MaxspeedsCollector *>(this));
|
||||
collector.MergeInto(*this);
|
||||
}
|
||||
|
||||
void MaxspeedsCollector::MergeInto(MaxspeedsCollector * collector) const
|
||||
void MaxspeedsCollector::MergeInto(MaxspeedsCollector & collector) const
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
copy(begin(m_data), end(m_data), back_inserter(collector->m_data));
|
||||
copy(begin(m_data), end(m_data), back_inserter(collector.m_data));
|
||||
}
|
||||
} // namespace generator
|
||||
|
|
|
@ -31,8 +31,8 @@ public:
|
|||
void CollectFeature(feature::FeatureBuilder const &, OsmElement const & p) override;
|
||||
void Save() override;
|
||||
|
||||
void Merge(CollectorInterface const * collector) override;
|
||||
void MergeInto(MaxspeedsCollector * collector) const override;
|
||||
void Merge(CollectorInterface const & collector) override;
|
||||
void MergeInto(MaxspeedsCollector & collector) const override;
|
||||
|
||||
private:
|
||||
// |m_data| contains strings with maxspeed tags value for corresponding features in one of the
|
||||
|
|
|
@ -16,11 +16,12 @@
|
|||
#include "defines.hpp"
|
||||
|
||||
#include <cstdint>
|
||||
#include <limits>
|
||||
#include <map>
|
||||
|
||||
namespace
|
||||
{
|
||||
uint8_t const kMetaLinesSectionVersion = 1;
|
||||
uint8_t constexpr kMetaLinesSectionVersion = 1;
|
||||
} // namespace
|
||||
|
||||
namespace feature
|
||||
|
@ -212,17 +213,14 @@ void MetalinesBuilder::Save()
|
|||
"ways] with OSM IDs for the entire planet to", GetFilename()));
|
||||
}
|
||||
|
||||
void MetalinesBuilder::Merge(generator::CollectorInterface const * collector)
|
||||
void MetalinesBuilder::Merge(generator::CollectorInterface const & collector)
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->MergeInto(const_cast<MetalinesBuilder *>(this));
|
||||
collector.MergeInto(*this);
|
||||
}
|
||||
|
||||
void MetalinesBuilder::MergeInto(MetalinesBuilder * collector) const
|
||||
void MetalinesBuilder::MergeInto(MetalinesBuilder & collector) const
|
||||
{
|
||||
CHECK(collector, ());
|
||||
collector->m_data.insert(std::begin(m_data), std::end(m_data));
|
||||
collector.m_data.insert(std::begin(m_data), std::end(m_data));
|
||||
}
|
||||
|
||||
// Functions --------------------------------------------------------------------------------
|
||||
|
|
|
@ -5,10 +5,12 @@
|
|||
#include "generator/osm_element.hpp"
|
||||
|
||||
#include <cstdlib>
|
||||
#include <cstdint>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
namespace generator
|
||||
{
|
||||
|
@ -48,9 +50,12 @@ public:
|
|||
using LinePtr = std::shared_ptr<LineString>;
|
||||
using InputData = std::unordered_multimap<size_t, LinePtr>;
|
||||
using OutputData = std::map<size_t, std::vector<LinePtr>>;
|
||||
using Buffer = std::unordered_map<uint64_t, LinePtr>;
|
||||
|
||||
static OutputData Merge(InputData const & data);
|
||||
|
||||
private:
|
||||
using Buffer = std::unordered_map<uint64_t, LinePtr>;
|
||||
|
||||
static bool TryMerge(LinePtr const & lineString, Buffer & buffer);
|
||||
static bool TryMergeOne(LinePtr const & lineString, Buffer & buffer);
|
||||
static OutputData OrderData(InputData const & data);
|
||||
|
@ -70,8 +75,8 @@ public:
|
|||
void CollectFeature(FeatureBuilder const & feature, OsmElement const & element) override;
|
||||
void Save() override;
|
||||
|
||||
void Merge(generator::CollectorInterface const * collector) override;
|
||||
void MergeInto(MetalinesBuilder * collector) const override;
|
||||
void Merge(generator::CollectorInterface const & collector) override;
|
||||
void MergeInto(MetalinesBuilder & collector) const override;
|
||||
|
||||
private:
|
||||
std::unordered_multimap<size_t, std::shared_ptr<LineString>> m_data;
|
||||
|
|
|
@ -100,19 +100,15 @@ void CollectorRegionInfo::Save()
|
|||
WriteMap(writer, m_mapIsoCode);
|
||||
}
|
||||
|
||||
void CollectorRegionInfo::Merge(CollectorInterface const * collector)
|
||||
void CollectorRegionInfo::Merge(CollectorInterface const & collector)
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->MergeInto(const_cast<CollectorRegionInfo *>(this));
|
||||
collector.MergeInto(*this);
|
||||
}
|
||||
|
||||
void CollectorRegionInfo::MergeInto(CollectorRegionInfo * collector) const
|
||||
void CollectorRegionInfo::MergeInto(CollectorRegionInfo & collector) const
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->m_mapRegionData.insert(std::begin(m_mapRegionData), std::end(m_mapRegionData));
|
||||
collector->m_mapIsoCode.insert(std::begin(m_mapIsoCode), std::end(m_mapIsoCode));
|
||||
collector.m_mapRegionData.insert(std::begin(m_mapRegionData), std::end(m_mapRegionData));
|
||||
collector.m_mapIsoCode.insert(std::begin(m_mapIsoCode), std::end(m_mapIsoCode));
|
||||
}
|
||||
|
||||
void CollectorRegionInfo::FillRegionData(base::GeoObjectId const & osmId, OsmElement const & el,
|
||||
|
|
|
@ -132,8 +132,8 @@ public:
|
|||
|
||||
void Save() override;
|
||||
|
||||
void Merge(CollectorInterface const * collector) override;
|
||||
void MergeInto(CollectorRegionInfo * collector) const override;
|
||||
void Merge(CollectorInterface const & collector) override;
|
||||
void MergeInto(CollectorRegionInfo & collector) const override;
|
||||
|
||||
private:
|
||||
template <typename Sink, typename Map>
|
||||
|
|
|
@ -102,7 +102,6 @@ RestrictionWriter::RestrictionWriter(std::string const & filename,
|
|||
std::shared_ptr<generator::CollectorInterface>
|
||||
RestrictionWriter::Clone(std::shared_ptr<generator::cache::IntermediateDataReader> const & cache) const
|
||||
{
|
||||
// auto c = cache ? cache : m_cache;
|
||||
return std::make_shared<RestrictionWriter>(GetFilename(), *cache);
|
||||
}
|
||||
|
||||
|
@ -212,18 +211,14 @@ void RestrictionWriter::Save()
|
|||
stream << m_stream.str();
|
||||
}
|
||||
|
||||
void RestrictionWriter::Merge(generator::CollectorInterface const * collector)
|
||||
void RestrictionWriter::Merge(generator::CollectorInterface const & collector)
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->MergeInto(const_cast<RestrictionWriter *>(this));
|
||||
collector.MergeInto(*this);
|
||||
}
|
||||
|
||||
void RestrictionWriter::MergeInto(RestrictionWriter * collector) const
|
||||
void RestrictionWriter::MergeInto(RestrictionWriter & collector) const
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->m_stream << m_stream.str();
|
||||
collector.m_stream << m_stream.str();
|
||||
}
|
||||
|
||||
std::string DebugPrint(RestrictionWriter::ViaType const & type)
|
||||
|
|
|
@ -44,8 +44,8 @@ public:
|
|||
void CollectRelation(RelationElement const & relationElement) override;
|
||||
void Save() override;
|
||||
|
||||
void Merge(generator::CollectorInterface const * collector) override;
|
||||
void MergeInto(RestrictionWriter * collector) const override;
|
||||
void Merge(generator::CollectorInterface const & collector) override;
|
||||
void MergeInto(RestrictionWriter & collector) const override;
|
||||
|
||||
static ViaType ConvertFromString(std::string const & str);
|
||||
|
||||
|
|
|
@ -420,18 +420,14 @@ void RoadAccessWriter::Save()
|
|||
out << stream.str();
|
||||
}
|
||||
|
||||
void RoadAccessWriter::Merge(generator::CollectorInterface const * collector)
|
||||
void RoadAccessWriter::Merge(generator::CollectorInterface const & collector)
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
collector->MergeInto(const_cast<RoadAccessWriter *>(this));
|
||||
collector.MergeInto(*this);
|
||||
}
|
||||
|
||||
void RoadAccessWriter::MergeInto(RoadAccessWriter * collector) const
|
||||
void RoadAccessWriter::MergeInto(RoadAccessWriter & collector) const
|
||||
{
|
||||
CHECK(collector, ());
|
||||
|
||||
auto & otherProcessors = collector->m_tagProcessors;
|
||||
auto & otherProcessors = collector.m_tagProcessors;
|
||||
CHECK_EQUAL(m_tagProcessors.size(), otherProcessors.size(), ());
|
||||
|
||||
for (size_t i = 0; i < otherProcessors.size(); ++i)
|
||||
|
|
|
@ -12,10 +12,12 @@
|
|||
#include <cstdint>
|
||||
#include <fstream>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <ostream>
|
||||
#include <set>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
|
||||
struct OsmElement;
|
||||
|
@ -69,7 +71,7 @@ private:
|
|||
class RoadAccessWriter : public generator::CollectorInterface
|
||||
{
|
||||
public:
|
||||
RoadAccessWriter(std::string const & filename);
|
||||
explicit RoadAccessWriter(std::string const & filename);
|
||||
|
||||
// CollectorInterface overrides:
|
||||
std::shared_ptr<CollectorInterface>
|
||||
|
@ -78,8 +80,9 @@ public:
|
|||
void CollectFeature(feature::FeatureBuilder const & fb, OsmElement const & elem) override;
|
||||
void Save() override;
|
||||
|
||||
void Merge(generator::CollectorInterface const * collector) override;
|
||||
void MergeInto(RoadAccessWriter * collector) const override;
|
||||
void Merge(generator::CollectorInterface const & collector) override;
|
||||
void MergeInto(RoadAccessWriter & collector) const override;
|
||||
|
||||
private:
|
||||
std::ofstream m_stream;
|
||||
std::vector<RoadAccessTagProcessor> m_tagProcessors;
|
||||
|
|
|
@ -64,18 +64,8 @@ void Translator::AddCollector(std::shared_ptr<CollectorInterface> collector)
|
|||
m_collectors.Append(collector);
|
||||
}
|
||||
|
||||
void Translator::AddCollectorCollection(CollectorCollection const & collectors)
|
||||
{
|
||||
m_collectors.AddCollection(collectors);
|
||||
}
|
||||
|
||||
void Translator::AddFilter(std::shared_ptr<FilterInterface> filter)
|
||||
{
|
||||
m_filters.Append(filter);
|
||||
}
|
||||
|
||||
void Translator::AddFilterCollection(FilterCollection const & filters)
|
||||
{
|
||||
m_filters.AddCollection(filters);
|
||||
}
|
||||
} // namespace generator
|
||||
|
|
|
@ -40,10 +40,7 @@ public:
|
|||
void GetNames(std::vector<std::string> & names) const override;
|
||||
|
||||
void AddCollector(std::shared_ptr<CollectorInterface> collector);
|
||||
void AddCollectorCollection(CollectorCollection const & collectors);
|
||||
|
||||
void AddFilter(std::shared_ptr<FilterInterface> filter);
|
||||
void AddFilterCollection(FilterCollection const & filters);
|
||||
|
||||
protected:
|
||||
FilterCollection m_filters;
|
||||
|
|
Loading…
Add table
Reference in a new issue