Apply clang format

This commit is contained in:
Denis Koronchik 2017-09-01 16:55:00 +03:00 committed by Michael Krasnyk
parent 580c5e39ae
commit c2fd64d3cc
8 changed files with 105 additions and 114 deletions

View File

@ -14,10 +14,7 @@ namespace extractor
namespace detail
{
inline const char * checkedString(const char * str)
{
return str ? str : "";
}
inline const char *checkedString(const char *str) { return str ? str : ""; }
} // namespace detail
@ -25,10 +22,7 @@ struct ExtractionRelation
{
using AttributesMap = std::unordered_map<std::string, std::string>;
ExtractionRelation()
: is_restriction(false)
{
}
ExtractionRelation() : is_restriction(false) {}
void clear()
{
@ -36,15 +30,9 @@ struct ExtractionRelation
values.clear();
}
bool IsRestriction() const
{
return is_restriction;
}
bool IsRestriction() const { return is_restriction; }
AttributesMap & GetMember(util::OsmIDTyped id)
{
return values[id.Hash()];
}
AttributesMap &GetMember(util::OsmIDTyped id) { return values[id.Hash()]; }
bool is_restriction;
std::unordered_map<util::OsmIDTyped::HashType, AttributesMap> values;
@ -53,18 +41,18 @@ struct ExtractionRelation
// It contains data of all parsed relations for each node/way element
class ExtractionRelationContainer
{
public:
public:
using AttributesMap = ExtractionRelation::AttributesMap;
using RelationList = std::vector<AttributesMap>;
void AddRelation(const ExtractionRelation & rel)
void AddRelation(const ExtractionRelation &rel)
{
BOOST_ASSERT(!rel.is_restriction);
for (auto it : rel.values)
data[it.first].push_back(it.second);
}
const RelationList & Get(const util::OsmIDTyped & id) const
const RelationList &Get(const util::OsmIDTyped &id) const
{
const auto it = data.find(id.Hash());
if (it != data.end())
@ -74,7 +62,7 @@ public:
return empty;
}
private:
private:
// TODO: need to store more common data
std::unordered_map<util::OsmIDTyped::HashType, RelationList> data;
};

View File

@ -90,7 +90,6 @@ class ExtractorCallbacks
// warning: caller needs to take care of synchronization!
void ProcessWay(const osmium::Way &current_way, const ExtractionWay &result_way);
};
}
}

View File

@ -62,14 +62,14 @@ class ScriptingEnvironment
virtual void ProcessTurn(ExtractionTurn &turn) = 0;
virtual void ProcessSegment(ExtractionSegment &segment) = 0;
virtual void
ProcessElements(const osmium::memory::Buffer &buffer,
const RestrictionParser &restriction_parser,
const ExtractionRelationContainer &relations,
std::vector<std::pair<const osmium::Node &, ExtractionNode>> &resulting_nodes,
std::vector<std::pair<const osmium::Way &, ExtractionWay>> &resulting_ways,
std::vector<std::pair<const osmium::Relation &, ExtractionRelation>> &resulting_relations,
std::vector<InputConditionalTurnRestriction> &resulting_restrictions) = 0;
virtual void ProcessElements(
const osmium::memory::Buffer &buffer,
const RestrictionParser &restriction_parser,
const ExtractionRelationContainer &relations,
std::vector<std::pair<const osmium::Node &, ExtractionNode>> &resulting_nodes,
std::vector<std::pair<const osmium::Way &, ExtractionWay>> &resulting_ways,
std::vector<std::pair<const osmium::Relation &, ExtractionRelation>> &resulting_relations,
std::vector<InputConditionalTurnRestriction> &resulting_restrictions) = 0;
};
}
}

View File

@ -1,9 +1,9 @@
#ifndef SCRIPTING_ENVIRONMENT_LUA_HPP
#define SCRIPTING_ENVIRONMENT_LUA_HPP
#include "extractor/extraction_relation.hpp"
#include "extractor/raster_source.hpp"
#include "extractor/scripting_environment.hpp"
#include "extractor/extraction_relation.hpp"
#include <tbb/enumerable_thread_specific.h>
@ -20,8 +20,12 @@ namespace extractor
struct LuaScriptingContext final
{
void ProcessNode(const osmium::Node &, ExtractionNode &result, const ExtractionRelationContainer::RelationList &relations);
void ProcessWay(const osmium::Way &, ExtractionWay &result, const ExtractionRelationContainer::RelationList &relations);
void ProcessNode(const osmium::Node &,
ExtractionNode &result,
const ExtractionRelationContainer::RelationList &relations);
void ProcessWay(const osmium::Way &,
ExtractionWay &result,
const ExtractionRelationContainer::RelationList &relations);
void ProcessRelation(const osmium::Relation &, ExtractionRelation &result);
ProfileProperties properties;
@ -69,14 +73,14 @@ class Sol2ScriptingEnvironment final : public ScriptingEnvironment
void ProcessTurn(ExtractionTurn &turn) override;
void ProcessSegment(ExtractionSegment &segment) override;
void
ProcessElements(const osmium::memory::Buffer &buffer,
const RestrictionParser &restriction_parser,
const ExtractionRelationContainer &relations,
std::vector<std::pair<const osmium::Node &, ExtractionNode>> &resulting_nodes,
std::vector<std::pair<const osmium::Way &, ExtractionWay>> &resulting_ways,
std::vector<std::pair<const osmium::Relation &, ExtractionRelation>> &resulting_relations,
std::vector<InputConditionalTurnRestriction> &resulting_restrictions) override;
void ProcessElements(
const osmium::memory::Buffer &buffer,
const RestrictionParser &restriction_parser,
const ExtractionRelationContainer &relations,
std::vector<std::pair<const osmium::Node &, ExtractionNode>> &resulting_nodes,
std::vector<std::pair<const osmium::Way &, ExtractionWay>> &resulting_ways,
std::vector<std::pair<const osmium::Relation &, ExtractionRelation>> &resulting_relations,
std::vector<InputConditionalTurnRestriction> &resulting_restrictions) override;
private:
LuaScriptingContext &GetSol2Context();

View File

@ -10,26 +10,24 @@ namespace util
class OsmIDTyped
{
public:
public:
using HashType = std::uint64_t;
OsmIDTyped(std::uint64_t id_, std::uint8_t type_)
: id(id_)
, type(type_)
OsmIDTyped(std::uint64_t id_, std::uint8_t type_) : id(id_), type(type_)
{
// check if type value not above type size bound
BOOST_ASSERT(id_ < (std::uint64_t(1) << 56));
}
bool operator == (const OsmIDTyped &other) { return (id == other.id && type == other.type); }
bool operator != (const OsmIDTyped &other) { return (id != other.id || type != other.type); }
bool operator==(const OsmIDTyped &other) { return (id == other.id && type == other.type); }
bool operator!=(const OsmIDTyped &other) { return (id != other.id || type != other.type); }
inline HashType Hash() const { return (std::uint64_t(id) | std::uint64_t(type) << 56); }
std::uint64_t GetID() const { return id; }
std::uint8_t GetType() const { return type; }
private:
private:
std::uint64_t id : 56;
std::uint8_t type;
};

View File

@ -3,8 +3,8 @@
#include "extractor/edge_based_edge.hpp"
#include "extractor/extraction_containers.hpp"
#include "extractor/extraction_node.hpp"
#include "extractor/extraction_way.hpp"
#include "extractor/extraction_relation.hpp"
#include "extractor/extraction_way.hpp"
#include "extractor/extractor_callbacks.hpp"
#include "extractor/files.hpp"
#include "extractor/raster_source.hpp"
@ -290,9 +290,10 @@ Extractor::ParseOSMData(ScriptingEnvironment &scripting_environment,
const osmium::io::File input_file(config.input_path.string());
osmium::thread::Pool pool(number_of_threads);
std::unique_ptr<osmium::io::Reader> reader(
new osmium::io::Reader(input_file, osmium::osm_entity_bits::relation,
(config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)));
std::unique_ptr<osmium::io::Reader> reader(new osmium::io::Reader(
input_file,
osmium::osm_entity_bits::relation,
(config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)));
osmium::io::Header header = reader->header();
@ -396,7 +397,7 @@ Extractor::ParseOSMData(ScriptingEnvironment &scripting_environment,
}
});
tbb::filter_t<std::shared_ptr<ParsedBuffer>, void> buffer_storage_relation(
tbb::filter_t<std::shared_ptr<ParsedBuffer>, void> buffer_storage_relation(
tbb::filter::serial_in_order, [&](const std::shared_ptr<ParsedBuffer> parsed_buffer) {
if (!parsed_buffer)
return;
@ -429,8 +430,10 @@ Extractor::ParseOSMData(ScriptingEnvironment &scripting_environment,
* processed there.
*/
util::Log() << "Parse ways and nodes ...";
reader.reset(new osmium::io::Reader(input_file, osmium::osm_entity_bits::node | osmium::osm_entity_bits::way,
(config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)));
reader.reset(new osmium::io::Reader(
input_file,
osmium::osm_entity_bits::node | osmium::osm_entity_bits::way,
(config.use_metadata ? osmium::io::read_meta::yes : osmium::io::read_meta::no)));
// Number of pipeline tokens that yielded the best speedup was about 1.5 * num_cores
tbb::parallel_pipeline(tbb::task_scheduler_init::default_num_threads() * 1.5,

View File

@ -290,24 +290,18 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
struct RelationMemberWrap
{
explicit RelationMemberWrap(const osmium::RelationMember & member)
{
init(member);
}
explicit RelationMemberWrap(const osmium::RelationMember &member) { init(member); }
RelationMemberWrap()
: item_type(osmium::item_type::undefined)
{
}
RelationMemberWrap() : item_type(osmium::item_type::undefined) {}
void init(const osmium::RelationMember & member)
void init(const osmium::RelationMember &member)
{
role = member.role();
item_type = member.type();
id = member.ref();
}
const char* GetRole() const { return role.c_str(); }
const char *GetRole() const { return role.c_str(); }
osmium::item_type GetItemType() const { return item_type; }
osmium::object_id_type GetId() const { return id; }
@ -319,20 +313,13 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
};
context.state.new_usertype<util::OsmIDTyped>(
"OsmIDTypes",
"id",
&util::OsmIDTyped::GetID,
"type",
&util::OsmIDTyped::GetType
);
"OsmIDTypes", "id", &util::OsmIDTyped::GetID, "type", &util::OsmIDTyped::GetType);
context.state.new_usertype<RelationMemberWrap>(
"RelationMember",
"role",
&RelationMemberWrap::GetRole,
"item_type",
&RelationMemberWrap::GetItemType
);
context.state.new_usertype<RelationMemberWrap>("RelationMember",
"role",
&RelationMemberWrap::GetRole,
"item_type",
&RelationMemberWrap::GetItemType);
/** TODO: make better solution with members iteration.
* For this moment, just make vector of RelationMember wrappers
@ -344,14 +331,15 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
&osmium::Relation::id,
"version",
&osmium::Relation::version,
"members", [](const osmium::Relation &rel)
{
std::vector<RelationMemberWrap> members(rel.members().size());
size_t i = 0;
for (const auto & m : rel.members())
members[i++].init(m);
return sol::as_table(std::move(members));
});
"members",
[](const osmium::Relation &rel) {
std::vector<RelationMemberWrap> members(
rel.members().size());
size_t i = 0;
for (const auto &m : rel.members())
members[i++].init(m);
return sol::as_table(std::move(members));
});
context.state.new_usertype<osmium::Node>("Node",
"location",
@ -445,34 +433,37 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
struct ExtractionRelationData
{
explicit ExtractionRelationData(ExtractionRelation::AttributesMap & attrs_)
: attrs(attrs_)
explicit ExtractionRelationData(ExtractionRelation::AttributesMap &attrs_) : attrs(attrs_)
{
}
ExtractionRelation::AttributesMap & attrs;
ExtractionRelation::AttributesMap &attrs;
};
context.state.new_usertype<ExtractionRelationData>(
"ExtractionRelationData",
"size",
[](const ExtractionRelationData & data) { return data.attrs.size(); },
[](const ExtractionRelationData &data) { return data.attrs.size(); },
sol::meta_function::new_index,
[](ExtractionRelationData & data, const std::string & key, sol::stack_object object) { return data.attrs[key] = object.as<std::string>(); },
[](ExtractionRelationData &data, const std::string &key, sol::stack_object object) {
return data.attrs[key] = object.as<std::string>();
},
sol::meta_function::index,
[](ExtractionRelationData & data, const std::string & key) { return data.attrs[key]; }
);
[](ExtractionRelationData &data, const std::string &key) { return data.attrs[key]; });
context.state.new_usertype<ExtractionRelation>(
"ExtractionRelation",
sol::meta_function::new_index,
[](ExtractionRelation & rel, const RelationMemberWrap & member) { return ExtractionRelationData(rel.GetMember(member.ref())); },
[](ExtractionRelation &rel, const RelationMemberWrap &member) {
return ExtractionRelationData(rel.GetMember(member.ref()));
},
sol::meta_function::index,
[](ExtractionRelation & rel, const RelationMemberWrap & member) { return ExtractionRelationData(rel.GetMember(member.ref())); },
[](ExtractionRelation &rel, const RelationMemberWrap &member) {
return ExtractionRelationData(rel.GetMember(member.ref()));
},
"restriction",
sol::property([](const ExtractionRelation & rel) { return rel.is_restriction; },
[](ExtractionRelation & rel, bool flag) { rel.is_restriction = flag; })
);
sol::property([](const ExtractionRelation &rel) { return rel.is_restriction; },
[](ExtractionRelation &rel, bool flag) { rel.is_restriction = flag; }));
context.state.new_usertype<ExtractionSegment>("ExtractionSegment",
"source",
@ -565,8 +556,7 @@ void Sol2ScriptingEnvironment::InitContext(LuaScriptingContext &context)
util::Log() << "Using profile api version " << context.api_version;
// version-dependent parts of the api
auto initV2Context = [&]()
{
auto initV2Context = [&]() {
// clear global not used in v2
context.state["properties"] = sol::nullopt;
@ -758,7 +748,7 @@ void Sol2ScriptingEnvironment::ProcessElements(
(!static_cast<const osmium::Node &>(*entity).tags().empty() ||
local_context.properties.call_tagless_node_function))
{
const osmium::Node & node = static_cast<const osmium::Node &>(*entity);
const osmium::Node &node = static_cast<const osmium::Node &>(*entity);
const util::OsmIDTyped id(node.id(), std::uint8_t(node.type()));
local_context.ProcessNode(node, result_node, relations.Get(id));
}
@ -769,7 +759,7 @@ void Sol2ScriptingEnvironment::ProcessElements(
result_way.clear();
if (local_context.has_way_function)
{
const osmium::Way & way = static_cast<const osmium::Way &>(*entity);
const osmium::Way &way = static_cast<const osmium::Way &>(*entity);
const util::OsmIDTyped id(way.id(), std::uint8_t(way.type()));
local_context.ProcessWay(way, result_way, relations.Get(id));
}
@ -790,10 +780,13 @@ void Sol2ScriptingEnvironment::ProcessElements(
result_relation.clear();
if (local_context.has_relation_function)
{
local_context.ProcessRelation(static_cast<const osmium::Relation &>(*entity), result_relation);
local_context.ProcessRelation(static_cast<const osmium::Relation &>(*entity),
result_relation);
}
resulting_relations.push_back(std::pair<const osmium::Relation &, ExtractionRelation>(
static_cast<const osmium::Relation &>(*entity), std::move(result_relation)));
resulting_relations.push_back(
std::pair<const osmium::Relation &, ExtractionRelation>(
static_cast<const osmium::Relation &>(*entity),
std::move(result_relation)));
}
}
break;
@ -1012,7 +1005,9 @@ void Sol2ScriptingEnvironment::ProcessSegment(ExtractionSegment &segment)
}
}
void LuaScriptingContext::ProcessNode(const osmium::Node &node, ExtractionNode &result, const ExtractionRelationContainer::RelationList &relations)
void LuaScriptingContext::ProcessNode(const osmium::Node &node,
ExtractionNode &result,
const ExtractionRelationContainer::RelationList &relations)
{
BOOST_ASSERT(state.lua_state() != nullptr);
@ -1031,7 +1026,9 @@ void LuaScriptingContext::ProcessNode(const osmium::Node &node, ExtractionNode &
}
}
void LuaScriptingContext::ProcessWay(const osmium::Way &way, ExtractionWay &result, const ExtractionRelationContainer::RelationList &relations)
void LuaScriptingContext::ProcessWay(const osmium::Way &way,
ExtractionWay &result,
const ExtractionRelationContainer::RelationList &relations)
{
BOOST_ASSERT(state.lua_state() != nullptr);
@ -1050,7 +1047,8 @@ void LuaScriptingContext::ProcessWay(const osmium::Way &way, ExtractionWay &resu
}
}
void LuaScriptingContext::ProcessRelation(const osmium::Relation &relation, ExtractionRelation &result)
void LuaScriptingContext::ProcessRelation(const osmium::Relation &relation,
ExtractionRelation &result)
{
BOOST_ASSERT(state.lua_state() != nullptr);
BOOST_ASSERT(api_version > 2);

View File

@ -34,13 +34,14 @@ class MockScriptingEnvironment : public extractor::ScriptingEnvironment
void ProcessTurn(extractor::ExtractionTurn &) override final {}
void ProcessSegment(extractor::ExtractionSegment &) override final {}
void ProcessElements(const osmium::memory::Buffer &,
const extractor::RestrictionParser &,
const extractor::ExtractionRelationContainer &,
std::vector<std::pair<const osmium::Node &, extractor::ExtractionNode>> &,
std::vector<std::pair<const osmium::Way &, extractor::ExtractionWay>> &,
std::vector<std::pair<const osmium::Relation &, extractor::ExtractionRelation>> &,
std::vector<extractor::InputConditionalTurnRestriction> &) override final
void ProcessElements(
const osmium::memory::Buffer &,
const extractor::RestrictionParser &,
const extractor::ExtractionRelationContainer &,
std::vector<std::pair<const osmium::Node &, extractor::ExtractionNode>> &,
std::vector<std::pair<const osmium::Way &, extractor::ExtractionWay>> &,
std::vector<std::pair<const osmium::Relation &, extractor::ExtractionRelation>> &,
std::vector<extractor::InputConditionalTurnRestriction> &) override final
{
}
};