From 26ea60ea16892a3ca02febae31274c7093dc08a0 Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Sat, 7 Dec 2019 09:54:27 +0100 Subject: [PATCH 1/7] Switch functions in outputs vom int to void return types. The return values are not used. This continues the refactor started in 1e76aff6ffc6dafe8dfafa9ae2f1335941dfd159. --- src/output-gazetteer.hpp | 40 ++++++++++------------------------ src/output-multi.cpp | 42 +++++++++++++----------------------- src/output-multi.hpp | 18 ++++++++-------- src/output-null.cpp | 18 ---------------- src/output-null.hpp | 18 ++++++++-------- src/output-pgsql.cpp | 37 +++++++++++-------------------- src/output-pgsql.hpp | 18 ++++++++-------- src/output.hpp | 18 ++++++++-------- tests/test-parse-osmium.cpp | 43 +++++++++---------------------------- 9 files changed, 85 insertions(+), 167 deletions(-) diff --git a/src/output-gazetteer.hpp b/src/output-gazetteer.hpp index 06e6a1bdb..8e0abf994 100644 --- a/src/output-gazetteer.hpp +++ b/src/output-gazetteer.hpp @@ -54,47 +54,29 @@ class output_gazetteer_t : public output_t {} int pending_relation(osmid_t, int) override { return 0; } - int node_add(osmium::Node const &node) override - { - return process_node(node); - } + void node_add(osmium::Node const &node) override { process_node(node); } - int way_add(osmium::Way *way) override { return process_way(way); } + void way_add(osmium::Way *way) override { process_way(way); } - int relation_add(osmium::Relation const &rel) override + void relation_add(osmium::Relation const &rel) override { - return process_relation(rel); + process_relation(rel); } - int node_modify(osmium::Node const &node) override - { - return process_node(node); - } + void node_modify(osmium::Node const &node) override { process_node(node); } - int way_modify(osmium::Way *way) override { return process_way(way); } + void way_modify(osmium::Way *way) override { process_way(way); } - int relation_modify(osmium::Relation const &rel) override + void relation_modify(osmium::Relation const &rel) override { - return process_relation(rel); + process_relation(rel); } - int node_delete(osmid_t id) override - { - m_copy.delete_object('N', id); - return 0; - } + void node_delete(osmid_t id) override { m_copy.delete_object('N', id); } - int way_delete(osmid_t id) override - { - m_copy.delete_object('W', id); - return 0; - } + void way_delete(osmid_t id) override { m_copy.delete_object('W', id); } - int relation_delete(osmid_t id) override - { - m_copy.delete_object('R', id); - return 0; - } + void relation_delete(osmid_t id) override { m_copy.delete_object('R', id); } private: enum diff --git a/src/output-multi.cpp b/src/output-multi.cpp index de55b237d..1774312e4 100644 --- a/src/output-multi.cpp +++ b/src/output-multi.cpp @@ -202,33 +202,30 @@ void output_multi_t::stop(osmium::thread::Pool *pool) void output_multi_t::commit() { m_table->commit(); } -int output_multi_t::node_add(osmium::Node const &node) +void output_multi_t::node_add(osmium::Node const &node) { if (m_processor->interests(geometry_processor::interest_node)) { - return process_node(node); + process_node(node); } - return 0; } -int output_multi_t::way_add(osmium::Way *way) +void output_multi_t::way_add(osmium::Way *way) { if (m_processor->interests(geometry_processor::interest_way) && way->nodes().size() > 1) { - return process_way(way); + process_way(way); } - return 0; } -int output_multi_t::relation_add(osmium::Relation const &rel) +void output_multi_t::relation_add(osmium::Relation const &rel) { if (m_processor->interests(geometry_processor::interest_relation) && !rel.members().empty()) { - return process_relation(rel, 0); + process_relation(rel, 0); } - return 0; } -int output_multi_t::node_modify(osmium::Node const &node) +void output_multi_t::node_modify(osmium::Node const &node) { if (m_processor->interests(geometry_processor::interest_node)) { // TODO - need to know it's a node? @@ -236,13 +233,11 @@ int output_multi_t::node_modify(osmium::Node const &node) // TODO: need to mark any ways or relations using it - depends on what // type of output this is... delegate to the geometry processor?? - return process_node(node); + process_node(node); } - - return 0; } -int output_multi_t::way_modify(osmium::Way *way) +void output_multi_t::way_modify(osmium::Way *way) { if (m_processor->interests(geometry_processor::interest_way)) { // TODO - need to know it's a way? @@ -250,13 +245,11 @@ int output_multi_t::way_modify(osmium::Way *way) // TODO: need to mark any relations using it - depends on what // type of output this is... delegate to the geometry processor?? - return process_way(way); + process_way(way); } - - return 0; } -int output_multi_t::relation_modify(osmium::Relation const &rel) +void output_multi_t::relation_modify(osmium::Relation const &rel) { if (m_processor->interests(geometry_processor::interest_relation)) { // TODO - need to know it's a relation? @@ -264,37 +257,32 @@ int output_multi_t::relation_modify(osmium::Relation const &rel) // TODO: need to mark any other relations using it - depends on what // type of output this is... delegate to the geometry processor?? - return process_relation(rel, false); + process_relation(rel, false); } - - return 0; } -int output_multi_t::node_delete(osmid_t id) +void output_multi_t::node_delete(osmid_t id) { if (m_processor->interests(geometry_processor::interest_node)) { // TODO - need to know it's a node? delete_from_output(id); } - return 0; } -int output_multi_t::way_delete(osmid_t id) +void output_multi_t::way_delete(osmid_t id) { if (m_processor->interests(geometry_processor::interest_way)) { // TODO - need to know it's a way? delete_from_output(id); } - return 0; } -int output_multi_t::relation_delete(osmid_t id) +void output_multi_t::relation_delete(osmid_t id) { if (m_processor->interests(geometry_processor::interest_relation)) { // TODO - need to know it's a relation? delete_from_output(-id); } - return 0; } int output_multi_t::process_node(osmium::Node const &node) diff --git a/src/output-multi.hpp b/src/output-multi.hpp index 68327a984..f560cf296 100644 --- a/src/output-multi.hpp +++ b/src/output-multi.hpp @@ -54,17 +54,17 @@ class output_multi_t : public output_t size_t output_id, size_t &added) override; int pending_relation(osmid_t id, int exists) override; - int node_add(osmium::Node const &node) override; - int way_add(osmium::Way *way) override; - int relation_add(osmium::Relation const &rel) override; + void node_add(osmium::Node const &node) override; + void way_add(osmium::Way *way) override; + void relation_add(osmium::Relation const &rel) override; - int node_modify(osmium::Node const &node) override; - int way_modify(osmium::Way *way) override; - int relation_modify(osmium::Relation const &rel) override; + void node_modify(osmium::Node const &node) override; + void way_modify(osmium::Way *way) override; + void relation_modify(osmium::Relation const &rel) override; - int node_delete(osmid_t id) override; - int way_delete(osmid_t id) override; - int relation_delete(osmid_t id) override; + void node_delete(osmid_t id) override; + void way_delete(osmid_t id) override; + void relation_delete(osmid_t id) override; size_t pending_count() const override; diff --git a/src/output-null.cpp b/src/output-null.cpp index 44ca33935..8d7530826 100644 --- a/src/output-null.cpp +++ b/src/output-null.cpp @@ -20,24 +20,6 @@ void output_null_t::enqueue_relations(pending_queue_t &, osmid_t, size_t, int output_null_t::pending_relation(osmid_t, int) { return 0; } -int output_null_t::node_add(osmium::Node const &) { return 0; } - -int output_null_t::way_add(osmium::Way *) { return 0; } - -int output_null_t::relation_add(osmium::Relation const &) { return 0; } - -int output_null_t::node_delete(osmid_t) { return 0; } - -int output_null_t::way_delete(osmid_t) { return 0; } - -int output_null_t::relation_delete(osmid_t) { return 0; } - -int output_null_t::node_modify(osmium::Node const &) { return 0; } - -int output_null_t::way_modify(osmium::Way *) { return 0; } - -int output_null_t::relation_modify(osmium::Relation const &) { return 0; } - std::shared_ptr output_null_t::clone(std::shared_ptr const &mid, std::shared_ptr const &) const diff --git a/src/output-null.hpp b/src/output-null.hpp index 10432ab85..601c11124 100644 --- a/src/output-null.hpp +++ b/src/output-null.hpp @@ -30,17 +30,17 @@ class output_null_t : public output_t size_t output_id, size_t &added) override; int pending_relation(osmid_t id, int exists) override; - int node_add(osmium::Node const &node) override; - int way_add(osmium::Way *way) override; - int relation_add(osmium::Relation const &rel) override; + void node_add(osmium::Node const &node) override {} + void way_add(osmium::Way *way) override {} + void relation_add(osmium::Relation const &rel) override {} - int node_modify(osmium::Node const &node) override; - int way_modify(osmium::Way *way) override; - int relation_modify(osmium::Relation const &rel) override; + void node_modify(osmium::Node const &node) override {} + void way_modify(osmium::Way *way) override {} + void relation_modify(osmium::Relation const &rel) override {} - int node_delete(osmid_t id) override; - int way_delete(osmid_t id) override; - int relation_delete(osmid_t id) override; + void node_delete(osmid_t id) override {} + void way_delete(osmid_t id) override {} + void relation_delete(osmid_t id) override {} }; #endif // OSM2PGSQL_OUTPUT_NULL_HPP diff --git a/src/output-pgsql.cpp b/src/output-pgsql.cpp index 6d50ab0bc..c25dda9a7 100644 --- a/src/output-pgsql.cpp +++ b/src/output-pgsql.cpp @@ -227,21 +227,19 @@ void output_pgsql_t::stop(osmium::thread::Pool *pool) } } -int output_pgsql_t::node_add(osmium::Node const &node) +void output_pgsql_t::node_add(osmium::Node const &node) { taglist_t outtags; if (m_tagtransform->filter_tags(node, nullptr, nullptr, outtags)) { - return 1; + return; } auto wkb = m_builder.get_wkb_node(node.location()); expire.from_wkb(wkb.c_str(), node.id()); m_tables[t_point]->write_row(node.id(), outtags, wkb); - - return 0; } -int output_pgsql_t::way_add(osmium::Way *way) +void output_pgsql_t::way_add(osmium::Way *way) { int polygon = 0; int roads = 0; @@ -257,7 +255,6 @@ int output_pgsql_t::way_add(osmium::Way *way) pgsql_out_way(*way, &outtags, polygon, roads); } } - return 0; } /* This is the workhorse of pgsql_add_relation, split out because it is used as the callback for iterate relations */ @@ -341,28 +338,28 @@ int output_pgsql_t::pgsql_process_relation(osmium::Relation const &rel) return 0; } -int output_pgsql_t::relation_add(osmium::Relation const &rel) +void output_pgsql_t::relation_add(osmium::Relation const &rel) { char const *type = rel.tags()["type"]; /* Must have a type field or we ignore it */ if (!type) { - return 0; + return; } /* Only a limited subset of type= is supported, ignore other */ if (strcmp(type, "route") != 0 && strcmp(type, "multipolygon") != 0 && strcmp(type, "boundary") != 0) { - return 0; + return; } - return pgsql_process_relation(rel); + pgsql_process_relation(rel); } /* Delete is easy, just remove all traces of this object. We don't need to * worry about finding objects that depend on it, since the same diff must * contain the change for that also. */ -int output_pgsql_t::node_delete(osmid_t osm_id) +void output_pgsql_t::node_delete(osmid_t osm_id) { if (!m_options.slim) { fprintf(stderr, "Cannot apply diffs unless in slim mode\n"); @@ -372,8 +369,6 @@ int output_pgsql_t::node_delete(osmid_t osm_id) if (expire.from_db(m_tables[t_point].get(), osm_id) != 0) { m_tables[t_point]->delete_row(osm_id); } - - return 0; } /* Seperated out because we use it elsewhere */ @@ -398,14 +393,13 @@ int output_pgsql_t::pgsql_delete_way_from_output(osmid_t osm_id) return 0; } -int output_pgsql_t::way_delete(osmid_t osm_id) +void output_pgsql_t::way_delete(osmid_t osm_id) { if (!m_options.slim) { fprintf(stderr, "Cannot apply diffs unless in slim mode\n"); util::exit_nicely(); } pgsql_delete_way_from_output(osm_id); - return 0; } /* Relations are identified by using negative IDs */ @@ -421,20 +415,19 @@ int output_pgsql_t::pgsql_delete_relation_from_output(osmid_t osm_id) return 0; } -int output_pgsql_t::relation_delete(osmid_t osm_id) +void output_pgsql_t::relation_delete(osmid_t osm_id) { if (!m_options.slim) { fprintf(stderr, "Cannot apply diffs unless in slim mode\n"); util::exit_nicely(); } pgsql_delete_relation_from_output(osm_id); - return 0; } /* Modify is slightly trickier. The basic idea is we simply delete the * object and create it with the new parameters. Then we need to mark the * objects that depend on this one */ -int output_pgsql_t::node_modify(osmium::Node const &node) +void output_pgsql_t::node_modify(osmium::Node const &node) { if (!m_options.slim) { fprintf(stderr, "Cannot apply diffs unless in slim mode\n"); @@ -442,10 +435,9 @@ int output_pgsql_t::node_modify(osmium::Node const &node) } node_delete(node.id()); node_add(node); - return 0; } -int output_pgsql_t::way_modify(osmium::Way *way) +void output_pgsql_t::way_modify(osmium::Way *way) { if (!m_options.slim) { fprintf(stderr, "Cannot apply diffs unless in slim mode\n"); @@ -453,11 +445,9 @@ int output_pgsql_t::way_modify(osmium::Way *way) } way_delete(way->id()); way_add(way); - - return 0; } -int output_pgsql_t::relation_modify(osmium::Relation const &rel) +void output_pgsql_t::relation_modify(osmium::Relation const &rel) { if (!m_options.slim) { fprintf(stderr, "Cannot apply diffs unless in slim mode\n"); @@ -465,7 +455,6 @@ int output_pgsql_t::relation_modify(osmium::Relation const &rel) } relation_delete(rel.id()); relation_add(rel); - return 0; } int output_pgsql_t::start() diff --git a/src/output-pgsql.hpp b/src/output-pgsql.hpp index 5363b3f81..cf622ec31 100644 --- a/src/output-pgsql.hpp +++ b/src/output-pgsql.hpp @@ -54,17 +54,17 @@ class output_pgsql_t : public output_t size_t output_id, size_t &added) override; int pending_relation(osmid_t id, int exists) override; - int node_add(osmium::Node const &node) override; - int way_add(osmium::Way *way) override; - int relation_add(osmium::Relation const &rel) override; + void node_add(osmium::Node const &node) override; + void way_add(osmium::Way *way) override; + void relation_add(osmium::Relation const &rel) override; - int node_modify(osmium::Node const &node) override; - int way_modify(osmium::Way *way) override; - int relation_modify(osmium::Relation const &rel) override; + void node_modify(osmium::Node const &node) override; + void way_modify(osmium::Way *way) override; + void relation_modify(osmium::Relation const &rel) override; - int node_delete(osmid_t id) override; - int way_delete(osmid_t id) override; - int relation_delete(osmid_t id) override; + void node_delete(osmid_t id) override; + void way_delete(osmid_t id) override; + void relation_delete(osmid_t id) override; size_t pending_count() const override; diff --git a/src/output.hpp b/src/output.hpp index 05828a238..ccb5d22ee 100644 --- a/src/output.hpp +++ b/src/output.hpp @@ -59,17 +59,17 @@ class output_t size_t output_id, size_t &added) = 0; virtual int pending_relation(osmid_t id, int exists) = 0; - virtual int node_add(osmium::Node const &node) = 0; - virtual int way_add(osmium::Way *way) = 0; - virtual int relation_add(osmium::Relation const &rel) = 0; + virtual void node_add(osmium::Node const &node) = 0; + virtual void way_add(osmium::Way *way) = 0; + virtual void relation_add(osmium::Relation const &rel) = 0; - virtual int node_modify(osmium::Node const &node) = 0; - virtual int way_modify(osmium::Way *way) = 0; - virtual int relation_modify(osmium::Relation const &rel) = 0; + virtual void node_modify(osmium::Node const &node) = 0; + virtual void way_modify(osmium::Way *way) = 0; + virtual void relation_modify(osmium::Relation const &rel) = 0; - virtual int node_delete(osmid_t id) = 0; - virtual int way_delete(osmid_t id) = 0; - virtual int relation_delete(osmid_t id) = 0; + virtual void node_delete(osmid_t id) = 0; + virtual void way_delete(osmid_t id) = 0; + virtual void relation_delete(osmid_t id) = 0; virtual size_t pending_count() const; diff --git a/tests/test-parse-osmium.cpp b/tests/test-parse-osmium.cpp index 16a6c56c3..2fba5b92b 100644 --- a/tests/test-parse-osmium.cpp +++ b/tests/test-parse-osmium.cpp @@ -65,63 +65,40 @@ struct counting_output_t : public output_null_t return std::shared_ptr(new counting_output_t(m_options)); } - int node_add(osmium::Node const &n) override + void node_add(osmium::Node const &n) override { ++node.added; sum_ids += n.id(); - return 0; } - int way_add(osmium::Way *w) override + void way_add(osmium::Way *w) override { ++way.added; sum_ids += w->id(); sum_nds += w->nodes().size(); - return 0; } - int relation_add(osmium::Relation const &r) override + void relation_add(osmium::Relation const &r) override { ++relation.added; sum_ids += r.id(); sum_members += r.members().size(); - return 0; } - int node_modify(osmium::Node const &) override - { - ++node.modified; - return 0; - } + void node_modify(osmium::Node const &) override { ++node.modified; } - int way_modify(osmium::Way *) override - { - ++way.modified; - return 0; - } - int relation_modify(osmium::Relation const &) override + void way_modify(osmium::Way *) override { ++way.modified; } + + void relation_modify(osmium::Relation const &) override { ++relation.modified; - return 0; } - int node_delete(osmid_t) override - { - ++node.deleted; - return 0; - } + void node_delete(osmid_t) override { ++node.deleted; } - int way_delete(osmid_t) override - { - ++way.deleted; - return 0; - } + void way_delete(osmid_t) override { ++way.deleted; } - int relation_delete(osmid_t) override - { - ++relation.deleted; - return 0; - } + void relation_delete(osmid_t) override { ++relation.deleted; } type_stats_t node, way, relation; long long sum_ids = 0; From 11d3eb52017533fe746ab77fd8639665ceb3c6a6 Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Sat, 7 Dec 2019 17:49:11 +0100 Subject: [PATCH 2/7] Switch pending_ways/relations from int to void return type The result is never used. --- src/output-gazetteer.hpp | 4 ++-- src/output-multi.cpp | 16 ++++------------ src/output-multi.hpp | 4 ++-- src/output-null.cpp | 4 ---- src/output-null.hpp | 4 ++-- src/output-pgsql.cpp | 13 +++++-------- src/output-pgsql.hpp | 4 ++-- src/output.hpp | 4 ++-- 8 files changed, 19 insertions(+), 34 deletions(-) diff --git a/src/output-gazetteer.hpp b/src/output-gazetteer.hpp index 8e0abf994..3baf6af7f 100644 --- a/src/output-gazetteer.hpp +++ b/src/output-gazetteer.hpp @@ -47,12 +47,12 @@ class output_gazetteer_t : public output_t void commit() override; void enqueue_ways(pending_queue_t &, osmid_t, size_t, size_t &) override {} - int pending_way(osmid_t, int) override { return 0; } + void pending_way(osmid_t, int) override {} void enqueue_relations(pending_queue_t &, osmid_t, size_t, size_t &) override {} - int pending_relation(osmid_t, int) override { return 0; } + void pending_relation(osmid_t, int) override {} void node_add(osmium::Node const &node) override { process_node(node); } diff --git a/src/output-multi.cpp b/src/output-multi.cpp index 1774312e4..ec460e8a7 100644 --- a/src/output-multi.cpp +++ b/src/output-multi.cpp @@ -120,18 +120,14 @@ void output_multi_t::enqueue_ways(pending_queue_t &job_queue, osmid_t id, } } -int output_multi_t::pending_way(osmid_t id, int exists) +void output_multi_t::pending_way(osmid_t id, int exists) { - int ret = 0; - // Try to fetch the way from the DB buffer.clear(); if (m_mid->ways_get(id, buffer)) { // Output the way - ret = reprocess_way(&buffer.get(0), exists); + reprocess_way(&buffer.get(0), exists); } - - return ret; } void output_multi_t::enqueue_relations(pending_queue_t &job_queue, osmid_t id, @@ -174,18 +170,14 @@ void output_multi_t::enqueue_relations(pending_queue_t &job_queue, osmid_t id, } } -int output_multi_t::pending_relation(osmid_t id, int exists) +void output_multi_t::pending_relation(osmid_t id, int exists) { - int ret = 0; - // Try to fetch the relation from the DB buffer.clear(); if (m_mid->relations_get(id, buffer)) { auto const &rel = buffer.get(0); - ret = process_relation(rel, exists); + process_relation(rel, exists); } - - return ret; } void output_multi_t::stop(osmium::thread::Pool *pool) diff --git a/src/output-multi.hpp b/src/output-multi.hpp index f560cf296..25107af19 100644 --- a/src/output-multi.hpp +++ b/src/output-multi.hpp @@ -48,11 +48,11 @@ class output_multi_t : public output_t void enqueue_ways(pending_queue_t &job_queue, osmid_t id, size_t output_id, size_t &added) override; - int pending_way(osmid_t id, int exists) override; + void pending_way(osmid_t id, int exists) override; void enqueue_relations(pending_queue_t &job_queue, osmid_t id, size_t output_id, size_t &added) override; - int pending_relation(osmid_t id, int exists) override; + void pending_relation(osmid_t id, int exists) override; void node_add(osmium::Node const &node) override; void way_add(osmium::Way *way) override; diff --git a/src/output-null.cpp b/src/output-null.cpp index 8d7530826..b2e05bc97 100644 --- a/src/output-null.cpp +++ b/src/output-null.cpp @@ -12,14 +12,10 @@ void output_null_t::commit() {} void output_null_t::enqueue_ways(pending_queue_t &, osmid_t, size_t, size_t &) {} -int output_null_t::pending_way(osmid_t, int) { return 0; } - void output_null_t::enqueue_relations(pending_queue_t &, osmid_t, size_t, size_t &) {} -int output_null_t::pending_relation(osmid_t, int) { return 0; } - std::shared_ptr output_null_t::clone(std::shared_ptr const &mid, std::shared_ptr const &) const diff --git a/src/output-null.hpp b/src/output-null.hpp index 601c11124..387c229d9 100644 --- a/src/output-null.hpp +++ b/src/output-null.hpp @@ -24,11 +24,11 @@ class output_null_t : public output_t void enqueue_ways(pending_queue_t &job_queue, osmid_t id, size_t output_id, size_t &added) override; - int pending_way(osmid_t id, int exists) override; + void pending_way(osmid_t id, int exists) override {}; void enqueue_relations(pending_queue_t &job_queue, osmid_t id, size_t output_id, size_t &added) override; - int pending_relation(osmid_t id, int exists) override; + void pending_relation(osmid_t id, int exists) override {}; void node_add(osmium::Node const &node) override {} void way_add(osmium::Way *way) override {} diff --git a/src/output-pgsql.cpp b/src/output-pgsql.cpp index c25dda9a7..5a10750bc 100644 --- a/src/output-pgsql.cpp +++ b/src/output-pgsql.cpp @@ -111,7 +111,7 @@ void output_pgsql_t::enqueue_ways(pending_queue_t &job_queue, osmid_t id, } } -int output_pgsql_t::pending_way(osmid_t id, int exists) +void output_pgsql_t::pending_way(osmid_t id, int exists) { // Try to fetch the way from the DB buffer.clear(); @@ -136,12 +136,10 @@ int output_pgsql_t::pending_way(osmid_t id, int exists) auto nnodes = m_mid->nodes_get_list(&(way.nodes())); if (nnodes > 1) { pgsql_out_way(way, &outtags, polygon, roads); - return 1; + return; } } } - - return 0; } void output_pgsql_t::enqueue_relations(pending_queue_t &job_queue, osmid_t id, @@ -184,7 +182,7 @@ void output_pgsql_t::enqueue_relations(pending_queue_t &job_queue, osmid_t id, } } -int output_pgsql_t::pending_relation(osmid_t id, int exists) +void output_pgsql_t::pending_relation(osmid_t id, int exists) { // Try to fetch the relation from the DB // Note that we cannot use the global buffer here because @@ -198,10 +196,9 @@ int output_pgsql_t::pending_relation(osmid_t id, int exists) } auto const &rel = rels_buffer.get(0); - return pgsql_process_relation(rel); + pgsql_process_relation(rel); + return; } - - return 0; } void output_pgsql_t::commit() diff --git a/src/output-pgsql.hpp b/src/output-pgsql.hpp index cf622ec31..880d7921f 100644 --- a/src/output-pgsql.hpp +++ b/src/output-pgsql.hpp @@ -48,11 +48,11 @@ class output_pgsql_t : public output_t void enqueue_ways(pending_queue_t &job_queue, osmid_t id, size_t output_id, size_t &added) override; - int pending_way(osmid_t id, int exists) override; + void pending_way(osmid_t id, int exists) override; void enqueue_relations(pending_queue_t &job_queue, osmid_t id, size_t output_id, size_t &added) override; - int pending_relation(osmid_t id, int exists) override; + void pending_relation(osmid_t id, int exists) override; void node_add(osmium::Node const &node) override; void way_add(osmium::Way *way) override; diff --git a/src/output.hpp b/src/output.hpp index ccb5d22ee..e557d8ac4 100644 --- a/src/output.hpp +++ b/src/output.hpp @@ -53,11 +53,11 @@ class output_t virtual void enqueue_ways(pending_queue_t &job_queue, osmid_t id, size_t output_id, size_t &added) = 0; - virtual int pending_way(osmid_t id, int exists) = 0; + virtual void pending_way(osmid_t id, int exists) = 0; virtual void enqueue_relations(pending_queue_t &job_queue, osmid_t id, size_t output_id, size_t &added) = 0; - virtual int pending_relation(osmid_t id, int exists) = 0; + virtual void pending_relation(osmid_t id, int exists) = 0; virtual void node_add(osmium::Node const &node) = 0; virtual void way_add(osmium::Way *way) = 0; From 3b563ad9757bef178a2865c2923820a85952b628 Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Sat, 7 Dec 2019 18:03:45 +0100 Subject: [PATCH 3/7] Switch start() function from int to void return type --- src/output-gazetteer.cpp | 4 +--- src/output-gazetteer.hpp | 2 +- src/output-multi.cpp | 3 +-- src/output-multi.hpp | 2 +- src/output-null.cpp | 15 --------------- src/output-null.hpp | 20 ++++++++++++-------- src/output-pgsql.cpp | 4 +--- src/output-pgsql.hpp | 2 +- src/output.hpp | 2 +- 9 files changed, 19 insertions(+), 35 deletions(-) diff --git a/src/output-gazetteer.cpp b/src/output-gazetteer.cpp index f94c9c8a4..12275ed25 100644 --- a/src/output-gazetteer.cpp +++ b/src/output-gazetteer.cpp @@ -28,7 +28,7 @@ void output_gazetteer_t::delete_unused_classes(char osm_type, osmid_t osm_id) } } -int output_gazetteer_t::start() +void output_gazetteer_t::start() { int srid = m_options.projection->target_srs(); @@ -65,8 +65,6 @@ int output_gazetteer_t::start() } conn.exec(index_sql); } - - return 0; } void output_gazetteer_t::commit() { m_copy.sync(); } diff --git a/src/output-gazetteer.hpp b/src/output-gazetteer.hpp index 3baf6af7f..2674353e4 100644 --- a/src/output-gazetteer.hpp +++ b/src/output-gazetteer.hpp @@ -42,7 +42,7 @@ class output_gazetteer_t : public output_t new output_gazetteer_t(this, mid, copy_thread)); } - int start() override; + void start() override; void stop(osmium::thread::Pool *) override {} void commit() override; diff --git a/src/output-multi.cpp b/src/output-multi.cpp index ec460e8a7..cae4e23cd 100644 --- a/src/output-multi.cpp +++ b/src/output-multi.cpp @@ -65,11 +65,10 @@ std::shared_ptr output_multi_t::clone( new output_multi_t(this, mid, copy_thread)); } -int output_multi_t::start() +void output_multi_t::start() { m_table->start(m_options.database_options.conninfo(), m_options.tblsmain_data); - return 0; } size_t output_multi_t::pending_count() const diff --git a/src/output-multi.hpp b/src/output-multi.hpp index 25107af19..4a43e37e1 100644 --- a/src/output-multi.hpp +++ b/src/output-multi.hpp @@ -42,7 +42,7 @@ class output_multi_t : public output_t clone(std::shared_ptr const &mid, std::shared_ptr const ©_thread) const override; - int start() override; + void start() override; void stop(osmium::thread::Pool *pool) override; void commit() override; diff --git a/src/output-null.cpp b/src/output-null.cpp index b2e05bc97..e6fba80f3 100644 --- a/src/output-null.cpp +++ b/src/output-null.cpp @@ -1,21 +1,6 @@ #include "output-null.hpp" #include "osmtypes.hpp" -void output_null_t::cleanup() {} - -int output_null_t::start() { return 0; } - -void output_null_t::stop(osmium::thread::Pool *) {} - -void output_null_t::commit() {} - -void output_null_t::enqueue_ways(pending_queue_t &, osmid_t, size_t, size_t &) -{} - -void output_null_t::enqueue_relations(pending_queue_t &, osmid_t, size_t, - size_t &) -{} - std::shared_ptr output_null_t::clone(std::shared_ptr const &mid, std::shared_ptr const &) const diff --git a/src/output-null.hpp b/src/output-null.hpp index 387c229d9..8f50f1f25 100644 --- a/src/output-null.hpp +++ b/src/output-null.hpp @@ -17,18 +17,22 @@ class output_null_t : public output_t clone(std::shared_ptr const &mid, std::shared_ptr const ©_thread) const override; - int start() override; - void stop(osmium::thread::Pool *pool) override; - void commit() override; - void cleanup(void); + void start() override {} + void stop(osmium::thread::Pool *pool) override {} + void commit() override {} + void cleanup() {} void enqueue_ways(pending_queue_t &job_queue, osmid_t id, size_t output_id, - size_t &added) override; - void pending_way(osmid_t id, int exists) override {}; + size_t &added) override + {} + + void pending_way(osmid_t id, int exists) override {} void enqueue_relations(pending_queue_t &job_queue, osmid_t id, - size_t output_id, size_t &added) override; - void pending_relation(osmid_t id, int exists) override {}; + size_t output_id, size_t &added) override + {} + + void pending_relation(osmid_t id, int exists) override {} void node_add(osmium::Node const &node) override {} void way_add(osmium::Way *way) override {} diff --git a/src/output-pgsql.cpp b/src/output-pgsql.cpp index 5a10750bc..af7c77c25 100644 --- a/src/output-pgsql.cpp +++ b/src/output-pgsql.cpp @@ -454,15 +454,13 @@ void output_pgsql_t::relation_modify(osmium::Relation const &rel) relation_add(rel); } -int output_pgsql_t::start() +void output_pgsql_t::start() { for (auto &t : m_tables) { //setup the table in postgres t->start(m_options.database_options.conninfo(), m_options.tblsmain_data); } - - return 0; } std::shared_ptr output_pgsql_t::clone( diff --git a/src/output-pgsql.hpp b/src/output-pgsql.hpp index 880d7921f..41392b2c7 100644 --- a/src/output-pgsql.hpp +++ b/src/output-pgsql.hpp @@ -42,7 +42,7 @@ class output_pgsql_t : public output_t clone(std::shared_ptr const &mid, std::shared_ptr const ©_thread) const override; - int start() override; + void start() override; void stop(osmium::thread::Pool *pool) override; void commit() override; diff --git a/src/output.hpp b/src/output.hpp index e557d8ac4..ff35ee257 100644 --- a/src/output.hpp +++ b/src/output.hpp @@ -47,7 +47,7 @@ class output_t clone(std::shared_ptr const &mid, std::shared_ptr const ©_thread) const = 0; - virtual int start() = 0; + virtual void start() = 0; virtual void stop(osmium::thread::Pool *pool) = 0; virtual void commit() = 0; From 604e655bec76308ee5222d48ce2058a76530ff0f Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Sun, 8 Dec 2019 09:43:58 +0100 Subject: [PATCH 4/7] Switch more functions from int to void return type --- src/output-gazetteer.cpp | 22 ++++++++-------------- src/output-gazetteer.hpp | 6 +++--- src/output-multi.cpp | 16 ++++++---------- src/output-multi.hpp | 8 ++++---- src/output-pgsql.cpp | 20 ++++++++------------ src/output-pgsql.hpp | 6 +++--- 6 files changed, 32 insertions(+), 46 deletions(-) diff --git a/src/output-gazetteer.cpp b/src/output-gazetteer.cpp index 12275ed25..b42cb30e9 100644 --- a/src/output-gazetteer.cpp +++ b/src/output-gazetteer.cpp @@ -69,7 +69,7 @@ void output_gazetteer_t::start() void output_gazetteer_t::commit() { m_copy.sync(); } -int output_gazetteer_t::process_node(osmium::Node const &node) +void output_gazetteer_t::process_node(osmium::Node const &node) { m_copy.prepare(); m_style.process_tags(node); @@ -80,11 +80,9 @@ int output_gazetteer_t::process_node(osmium::Node const &node) auto wkb = m_builder.get_wkb_node(node.location()); m_style.copy_out(node, wkb, m_copy); } - - return 0; } -int output_gazetteer_t::process_way(osmium::Way *way) +void output_gazetteer_t::process_way(osmium::Way *way) { m_copy.prepare(); m_style.process_tags(*way); @@ -104,7 +102,7 @@ int output_gazetteer_t::process_way(osmium::Way *way) auto wkbs = m_builder.get_wkb_line(way->nodes(), 0.0); if (wkbs.empty()) { delete_unused_full('W', way->id()); - return 0; + return; } geom = wkbs[0]; @@ -112,11 +110,9 @@ int output_gazetteer_t::process_way(osmium::Way *way) m_style.copy_out(*way, geom, m_copy); } - - return 0; } -int output_gazetteer_t::process_relation(osmium::Relation const &rel) +void output_gazetteer_t::process_relation(osmium::Relation const &rel) { m_copy.prepare(); @@ -124,7 +120,7 @@ int output_gazetteer_t::process_relation(osmium::Relation const &rel) char const *type = tags["type"]; if (!type) { delete_unused_full('R', rel.id()); - return 0; + return; } bool is_waterway = strcmp(type, "waterway") == 0; @@ -133,7 +129,7 @@ int output_gazetteer_t::process_relation(osmium::Relation const &rel) !(strcmp(type, "boundary") == 0 || strcmp(type, "multipolygon") == 0 || is_waterway)) { delete_unused_full('R', rel.id()); - return 0; + return; } m_style.process_tags(rel); @@ -141,7 +137,7 @@ int output_gazetteer_t::process_relation(osmium::Relation const &rel) /* Are we interested in this item? */ if (!m_style.has_data()) { - return 0; + return; } /* get the boundary path (ways) */ @@ -150,7 +146,7 @@ int output_gazetteer_t::process_relation(osmium::Relation const &rel) if (num_ways == 0) { delete_unused_full('R', rel.id()); - return 0; + return; } for (auto &w : osmium_buffer.select()) { @@ -166,6 +162,4 @@ int output_gazetteer_t::process_relation(osmium::Relation const &rel) } else { m_style.copy_out(rel, geoms[0], m_copy); } - - return 0; } diff --git a/src/output-gazetteer.hpp b/src/output-gazetteer.hpp index 2674353e4..55bdbeae2 100644 --- a/src/output-gazetteer.hpp +++ b/src/output-gazetteer.hpp @@ -86,9 +86,9 @@ class output_gazetteer_t : public output_t /// Delete all places that are not covered by the current style results. void delete_unused_classes(char osm_type, osmid_t osm_id); - int process_node(osmium::Node const &node); - int process_way(osmium::Way *way); - int process_relation(osmium::Relation const &rel); + void process_node(osmium::Node const &node); + void process_way(osmium::Way *way); + void process_relation(osmium::Relation const &rel); void delete_unused_full(char osm_type, osmid_t osm_id) { diff --git a/src/output-multi.cpp b/src/output-multi.cpp index cae4e23cd..185f896af 100644 --- a/src/output-multi.cpp +++ b/src/output-multi.cpp @@ -276,7 +276,7 @@ void output_multi_t::relation_delete(osmid_t id) } } -int output_multi_t::process_node(osmium::Node const &node) +void output_multi_t::process_node(osmium::Node const &node) { // check if we are keeping this node taglist_t outtags; @@ -290,10 +290,9 @@ int output_multi_t::process_node(osmium::Node const &node) copy_node_to_table(node.id(), geom, outtags); } } - return 0; } -int output_multi_t::reprocess_way(osmium::Way *way, bool exists) +void output_multi_t::reprocess_way(osmium::Way *way, bool exists) { //if the way could exist already we have to make the relation pending and reprocess it later //but only if we actually care about relations @@ -319,10 +318,9 @@ int output_multi_t::reprocess_way(osmium::Way *way, bool exists) copy_to_table(way->id(), geom, outtags); } } - return 0; } -int output_multi_t::process_way(osmium::Way *way) +void output_multi_t::process_way(osmium::Way *way) { //check if we are keeping this way taglist_t outtags; @@ -331,7 +329,7 @@ int output_multi_t::process_way(osmium::Way *way) if (!filter) { //get the geom from the middle if (m_mid->nodes_get_list(&(way->nodes())) < 1) { - return 0; + return; } //grab its geom auto geom = m_processor->process_way(*way, &m_builder); @@ -348,10 +346,9 @@ int output_multi_t::process_way(osmium::Way *way) } } } - return 0; } -int output_multi_t::process_relation(osmium::Relation const &rel, bool exists) +void output_multi_t::process_relation(osmium::Relation const &rel, bool exists) { //if it may exist already, delete it first if (exists) { @@ -366,7 +363,7 @@ int output_multi_t::process_relation(osmium::Relation const &rel, bool exists) //TODO: move this into geometry processor, figure a way to come back for tag transform //grab ways/nodes of the members in the relation, bail if none were used if (m_relation_helper.set(rel, m_mid.get()) < 1) { - return 0; + return; } //NOTE: make_polygon is preset here this is to force the tag matching @@ -390,7 +387,6 @@ int output_multi_t::process_relation(osmium::Relation const &rel, bool exists) } } } - return 0; } void output_multi_t::copy_node_to_table(osmid_t id, std::string const &geom, diff --git a/src/output-multi.hpp b/src/output-multi.hpp index 4a43e37e1..8ebf2e889 100644 --- a/src/output-multi.hpp +++ b/src/output-multi.hpp @@ -73,10 +73,10 @@ class output_multi_t : public output_t protected: void delete_from_output(osmid_t id); - int process_node(osmium::Node const &node); - int process_way(osmium::Way *way); - int reprocess_way(osmium::Way *way, bool exists); - int process_relation(osmium::Relation const &rel, bool exists); + void process_node(osmium::Node const &node); + void process_way(osmium::Way *way); + void reprocess_way(osmium::Way *way, bool exists); + void process_relation(osmium::Relation const &rel, bool exists); void copy_node_to_table(osmid_t id, const std::string &geom, taglist_t &tags); void copy_to_table(const osmid_t id, geometry_processor::wkb_t const &geom, diff --git a/src/output-pgsql.cpp b/src/output-pgsql.cpp index af7c77c25..1c6dcaefb 100644 --- a/src/output-pgsql.cpp +++ b/src/output-pgsql.cpp @@ -255,11 +255,11 @@ void output_pgsql_t::way_add(osmium::Way *way) } /* This is the workhorse of pgsql_add_relation, split out because it is used as the callback for iterate relations */ -int output_pgsql_t::pgsql_process_relation(osmium::Relation const &rel) +void output_pgsql_t::pgsql_process_relation(osmium::Relation const &rel) { taglist_t prefiltered_tags; if (m_tagtransform->filter_tags(rel, nullptr, nullptr, prefiltered_tags)) { - return 1; + return; } idlist_t xid2; @@ -275,7 +275,7 @@ int output_pgsql_t::pgsql_process_relation(osmium::Relation const &rel) auto num_ways = m_mid->rel_way_members_get(rel, &xrole, buffer); if (num_ways == 0) { - return 0; + return; } int roads = 0; @@ -288,7 +288,7 @@ int output_pgsql_t::pgsql_process_relation(osmium::Relation const &rel) if (m_tagtransform->filter_rel_member_tags(prefiltered_tags, buffer, xrole, &make_boundary, &make_polygon, &roads, outtags)) { - return 0; + return; } for (auto &w : buffer.select()) { @@ -331,8 +331,6 @@ int output_pgsql_t::pgsql_process_relation(osmium::Relation const &rel) m_tables[t_poly]->write_row(-rel.id(), outtags, wkb); } } - - return 0; } void output_pgsql_t::relation_add(osmium::Relation const &rel) @@ -369,15 +367,15 @@ void output_pgsql_t::node_delete(osmid_t osm_id) } /* Seperated out because we use it elsewhere */ -int output_pgsql_t::pgsql_delete_way_from_output(osmid_t osm_id) +void output_pgsql_t::pgsql_delete_way_from_output(osmid_t osm_id) { /* Optimisation: we only need this is slim mode */ if (!m_options.slim) { - return 0; + return; } /* in droptemp mode we don't have indices and this takes ages. */ if (m_options.droptemp) { - return 0; + return; } m_tables[t_roads]->delete_row(osm_id); @@ -387,7 +385,6 @@ int output_pgsql_t::pgsql_delete_way_from_output(osmid_t osm_id) if (expire.from_db(m_tables[t_poly].get(), osm_id) != 0) { m_tables[t_poly]->delete_row(osm_id); } - return 0; } void output_pgsql_t::way_delete(osmid_t osm_id) @@ -400,7 +397,7 @@ void output_pgsql_t::way_delete(osmid_t osm_id) } /* Relations are identified by using negative IDs */ -int output_pgsql_t::pgsql_delete_relation_from_output(osmid_t osm_id) +void output_pgsql_t::pgsql_delete_relation_from_output(osmid_t osm_id) { m_tables[t_roads]->delete_row(-osm_id); if (expire.from_db(m_tables[t_line].get(), -osm_id) != 0) { @@ -409,7 +406,6 @@ int output_pgsql_t::pgsql_delete_relation_from_output(osmid_t osm_id) if (expire.from_db(m_tables[t_poly].get(), -osm_id) != 0) { m_tables[t_poly]->delete_row(-osm_id); } - return 0; } void output_pgsql_t::relation_delete(osmid_t osm_id) diff --git a/src/output-pgsql.hpp b/src/output-pgsql.hpp index 41392b2c7..ff617f891 100644 --- a/src/output-pgsql.hpp +++ b/src/output-pgsql.hpp @@ -74,9 +74,9 @@ class output_pgsql_t : public output_t protected: void pgsql_out_way(osmium::Way const &way, taglist_t *tags, bool polygon, bool roads); - int pgsql_process_relation(osmium::Relation const &rel); - int pgsql_delete_way_from_output(osmid_t osm_id); - int pgsql_delete_relation_from_output(osmid_t osm_id); + void pgsql_process_relation(osmium::Relation const &rel); + void pgsql_delete_way_from_output(osmid_t osm_id); + void pgsql_delete_relation_from_output(osmid_t osm_id); std::unique_ptr m_tagtransform; From f00946f5d5036c4deba303e964e3d6a532ad4c88 Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Sun, 8 Dec 2019 09:45:46 +0100 Subject: [PATCH 5/7] Fix includes --- src/osmdata.cpp | 4 ++-- src/osmdata.hpp | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/osmdata.cpp b/src/osmdata.cpp index 832e1d580..1079f776d 100644 --- a/src/osmdata.cpp +++ b/src/osmdata.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -10,7 +11,6 @@ #include "db-copy.hpp" #include "middle.hpp" -#include "node-ram-cache.hpp" #include "osmdata.hpp" #include "output.hpp" @@ -400,7 +400,7 @@ struct pending_threaded_processor : public middle_t::pending_processor void osmdata_t::stop() const { /* Commit the transactions, so that multiple processes can - * access the data simultanious to process the rest in parallel + * access the data simultaneously to process the rest in parallel * as well as see the newly created tables. */ mid->commit(); diff --git a/src/osmdata.hpp b/src/osmdata.hpp index 9803fec47..ccd8df97f 100644 --- a/src/osmdata.hpp +++ b/src/osmdata.hpp @@ -8,7 +8,6 @@ class output_t; struct middle_t; -class reprojection; class osmdata_t { From 691a78e42fc2b6e1876eee3ecabaa36bccdfea71 Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Sun, 8 Dec 2019 10:54:55 +0100 Subject: [PATCH 6/7] Avoid unused parameter warning --- src/output-null.hpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/output-null.hpp b/src/output-null.hpp index 8f50f1f25..0a365b066 100644 --- a/src/output-null.hpp +++ b/src/output-null.hpp @@ -18,33 +18,33 @@ class output_null_t : public output_t std::shared_ptr const ©_thread) const override; void start() override {} - void stop(osmium::thread::Pool *pool) override {} + void stop(osmium::thread::Pool * /*pool*/) override {} void commit() override {} void cleanup() {} - void enqueue_ways(pending_queue_t &job_queue, osmid_t id, size_t output_id, - size_t &added) override + void enqueue_ways(pending_queue_t & /*job_queue*/, osmid_t /*id*/, size_t /*output_id*/, + size_t & /*added*/) override {} - void pending_way(osmid_t id, int exists) override {} + void pending_way(osmid_t /*id*/, int /*exists*/) override {} - void enqueue_relations(pending_queue_t &job_queue, osmid_t id, - size_t output_id, size_t &added) override + void enqueue_relations(pending_queue_t & /*job_queue*/, osmid_t /*id*/, + size_t /*output_id*/, size_t & /*added*/) override {} - void pending_relation(osmid_t id, int exists) override {} + void pending_relation(osmid_t /*id*/, int /*exists*/) override {} - void node_add(osmium::Node const &node) override {} - void way_add(osmium::Way *way) override {} - void relation_add(osmium::Relation const &rel) override {} + void node_add(osmium::Node const & /*node*/) override {} + void way_add(osmium::Way * /*way*/) override {} + void relation_add(osmium::Relation const & /*rel*/) override {} - void node_modify(osmium::Node const &node) override {} - void way_modify(osmium::Way *way) override {} - void relation_modify(osmium::Relation const &rel) override {} + void node_modify(osmium::Node const & /*node*/) override {} + void way_modify(osmium::Way * /*way*/) override {} + void relation_modify(osmium::Relation const & /*rel*/) override {} - void node_delete(osmid_t id) override {} - void way_delete(osmid_t id) override {} - void relation_delete(osmid_t id) override {} + void node_delete(osmid_t /*id*/) override {} + void way_delete(osmid_t /*id*/) override {} + void relation_delete(osmid_t /*id*/) override {} }; #endif // OSM2PGSQL_OUTPUT_NULL_HPP From cb21eef6f8b394633dd8829df17a55a05ef9bdfb Mon Sep 17 00:00:00 2001 From: Jochen Topf Date: Sun, 8 Dec 2019 16:34:11 +0100 Subject: [PATCH 7/7] Remove useless return. --- src/output-pgsql.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/output-pgsql.cpp b/src/output-pgsql.cpp index 1c6dcaefb..32ead8a1b 100644 --- a/src/output-pgsql.cpp +++ b/src/output-pgsql.cpp @@ -197,7 +197,6 @@ void output_pgsql_t::pending_relation(osmid_t id, int exists) auto const &rel = rels_buffer.get(0); pgsql_process_relation(rel); - return; } }