Skip to content

Commit 06eb3fa

Browse files
committed
Generalizer: Add "append" flag as parameter to all generalizers
and make it accessible through the append_mode() function.
1 parent fef8e5c commit 06eb3fa

17 files changed

+39
-30
lines changed

src/gen/gen-base.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
#include <fmt/args.h>
1616

17-
gen_base_t::gen_base_t(pg_conn_t *connection, params_t *params)
18-
: m_connection(connection), m_params(params)
17+
gen_base_t::gen_base_t(pg_conn_t *connection, bool append, params_t *params)
18+
: m_connection(connection), m_params(params), m_append(append)
1919
{
2020
assert(connection);
2121
assert(params);

src/gen/gen-base.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,10 @@ class gen_base_t
6767
}
6868
}
6969

70+
bool append_mode() const noexcept { return m_append; }
71+
7072
protected:
71-
gen_base_t(pg_conn_t *connection, params_t *params);
73+
gen_base_t(pg_conn_t *connection, bool append, params_t *params);
7274

7375
/**
7476
* Check that the 'src_table' and 'dest_table' parameters exist and that
@@ -106,6 +108,7 @@ class gen_base_t
106108
std::vector<util::timer_t> m_timers;
107109
pg_conn_t *m_connection;
108110
params_t *m_params;
111+
bool m_append;
109112
bool m_debug = false;
110113
}; // class gen_base_t
111114

src/gen/gen-create.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,25 @@
1818

1919
std::unique_ptr<gen_base_t> create_generalizer(std::string const &strategy,
2020
pg_conn_t *connection,
21-
params_t *params)
21+
bool append, params_t *params)
2222
{
2323
auto generalizer = [&]() -> std::unique_ptr<gen_base_t> {
2424
if (strategy == "builtup") {
25-
return std::make_unique<gen_tile_builtup_t>(connection, params);
25+
return std::make_unique<gen_tile_builtup_t>(connection, append,
26+
params);
2627
}
2728
if (strategy == "discrete-isolation") {
28-
return std::make_unique<gen_di_t>(connection, params);
29+
return std::make_unique<gen_di_t>(connection, append, params);
2930
}
3031
if (strategy == "raster-union") {
31-
return std::make_unique<gen_tile_raster_union_t>(connection,
32+
return std::make_unique<gen_tile_raster_union_t>(connection, append,
3233
params);
3334
}
3435
if (strategy == "rivers") {
35-
return std::make_unique<gen_rivers_t>(connection, params);
36+
return std::make_unique<gen_rivers_t>(connection, append, params);
3637
}
3738
if (strategy == "vector-union") {
38-
return std::make_unique<gen_tile_vector_union_t>(connection,
39+
return std::make_unique<gen_tile_vector_union_t>(connection, append,
3940
params);
4041
}
4142
throw fmt_error("Unknown generalization strategy '{}'.", strategy);

src/gen/gen-create.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ class pg_conn_t;
2121
/// Instantiate a generalizer for the specified strategy.
2222
std::unique_ptr<gen_base_t> create_generalizer(std::string const &strategy,
2323
pg_conn_t *connection,
24-
params_t *params);
24+
bool append, params_t *params);
2525

2626
#endif // OSM2PGSQL_GEN_CREATE_HPP

src/gen/gen-discrete-isolation.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
#include <algorithm>
1818
#include <vector>
1919

20-
gen_di_t::gen_di_t(pg_conn_t *connection, params_t *params)
21-
: gen_base_t(connection, params), m_timer_get(add_timer("get")),
20+
gen_di_t::gen_di_t(pg_conn_t *connection, bool append, params_t *params)
21+
: gen_base_t(connection, append, params), m_timer_get(add_timer("get")),
2222
m_timer_sort(add_timer("sort")), m_timer_di(add_timer("di")),
2323
m_timer_reorder(add_timer("reorder")), m_timer_write(add_timer("write"))
2424
{

src/gen/gen-discrete-isolation.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
class gen_di_t : public gen_base_t
1818
{
1919
public:
20-
gen_di_t(pg_conn_t *connection, params_t *params);
20+
gen_di_t(pg_conn_t *connection, bool append, params_t *params);
2121

2222
void process() override;
2323

src/gen/gen-rivers.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
#include <unordered_map>
2323
#include <vector>
2424

25-
gen_rivers_t::gen_rivers_t(pg_conn_t *connection, params_t *params)
26-
: gen_base_t(connection, params), m_timer_area(add_timer("area")),
25+
gen_rivers_t::gen_rivers_t(pg_conn_t *connection, bool append, params_t *params)
26+
: gen_base_t(connection, append, params), m_timer_area(add_timer("area")),
2727
m_timer_prep(add_timer("prep")), m_timer_get(add_timer("get")),
2828
m_timer_sort(add_timer("sort")), m_timer_net(add_timer("net")),
2929
m_timer_remove(add_timer("remove")), m_timer_width(add_timer("width")),

src/gen/gen-rivers.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
class gen_rivers_t : public gen_base_t
1818
{
1919
public:
20-
gen_rivers_t(pg_conn_t *connection, params_t *params);
20+
gen_rivers_t(pg_conn_t *connection, bool append, params_t *params);
2121

2222
void process() override;
2323

src/gen/gen-tile-builtup.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ static std::size_t round_up(std::size_t value, std::size_t multiple) noexcept
2626
return ((value + multiple - 1U) / multiple) * multiple;
2727
}
2828

29-
gen_tile_builtup_t::gen_tile_builtup_t(pg_conn_t *connection, params_t *params)
30-
: gen_tile_t(connection, params), m_timer_draw(add_timer("draw")),
29+
gen_tile_builtup_t::gen_tile_builtup_t(pg_conn_t *connection, bool append,
30+
params_t *params)
31+
: gen_tile_t(connection, append, params), m_timer_draw(add_timer("draw")),
3132
m_timer_simplify(add_timer("simplify")),
3233
m_timer_vectorize(add_timer("vectorize")), m_timer_write(add_timer("write"))
3334
{

src/gen/gen-tile-builtup.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
class gen_tile_builtup_t final : public gen_tile_t
2020
{
2121
public:
22-
gen_tile_builtup_t(pg_conn_t *connection, params_t *params);
22+
gen_tile_builtup_t(pg_conn_t *connection, bool append, params_t *params);
2323

2424
~gen_tile_builtup_t() override = default;
2525

0 commit comments

Comments
 (0)