Skip to content

Commit 0ed8085

Browse files
committed
Add options param to osmdata_t constructor
...instead of getting it from outputs
1 parent b7ca67c commit 0ed8085

File tree

4 files changed

+13
-10
lines changed

4 files changed

+13
-10
lines changed

src/osm2pgsql.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,8 @@ int main(int argc, char *argv[])
7373
need_dependencies ? new full_dependency_manager_t{middle}
7474
: new dependency_manager_t{});
7575

76-
osmdata_t osmdata{std::move(dependency_manager), middle, outputs};
76+
osmdata_t osmdata{std::move(dependency_manager), middle, outputs,
77+
options};
7778

7879
fmt::print(stderr, "Using projection SRS {} ({})\n",
7980
options.projection->target_srs(),

src/osmdata.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,21 @@
1313
#include "db-copy.hpp"
1414
#include "format.hpp"
1515
#include "middle.hpp"
16+
#include "options.hpp"
1617
#include "osmdata.hpp"
1718
#include "output.hpp"
1819
#include "util.hpp"
1920

2021
osmdata_t::osmdata_t(std::unique_ptr<dependency_manager_t> dependency_manager,
2122
std::shared_ptr<middle_t> mid,
22-
std::vector<std::shared_ptr<output_t>> outs)
23+
std::vector<std::shared_ptr<output_t>> outs,
24+
options_t const &options)
2325
: m_dependency_manager(std::move(dependency_manager)), m_mid(std::move(mid)),
24-
m_outs(std::move(outs))
26+
m_outs(std::move(outs)), m_with_extra_attrs(options.extra_attributes)
2527
{
2628
assert(m_dependency_manager);
2729
assert(m_mid);
2830
assert(!m_outs.empty());
29-
30-
// Get the "extra_attributes" option from the first output. We expect
31-
// all others to be the same.
32-
m_with_extra_attrs = m_outs[0]->get_options()->extra_attributes;
3331
}
3432

3533
/**

src/osmdata.hpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "dependency-manager.hpp"
88
#include "osmtypes.hpp"
99

10+
class options_t;
1011
class output_t;
1112
struct middle_t;
1213
struct slim_middle_t;
@@ -16,7 +17,8 @@ class osmdata_t
1617
public:
1718
osmdata_t(std::unique_ptr<dependency_manager_t> dependency_manager,
1819
std::shared_ptr<middle_t> mid,
19-
std::vector<std::shared_ptr<output_t>> outs);
20+
std::vector<std::shared_ptr<output_t>> outs,
21+
options_t const &options);
2022

2123
void start() const;
2224
void flush() const;
@@ -40,6 +42,7 @@ class osmdata_t
4042
std::unique_ptr<dependency_manager_t> m_dependency_manager;
4143
std::shared_ptr<middle_t> m_mid;
4244
std::vector<std::shared_ptr<output_t>> m_outs;
45+
4346
bool m_with_extra_attrs;
4447
};
4548

tests/common-import.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ inline void parse_file(options_t const &options,
2727
std::vector<std::shared_ptr<output_t>> const &outs,
2828
char const *filename = nullptr)
2929
{
30-
osmdata_t osmdata{std::move(dependency_manager), mid, outs};
30+
osmdata_t osmdata{std::move(dependency_manager), mid, outs, options};
3131

3232
osmdata.start();
3333
parse_osmium_t parser{options.bbox, options.append, &osmdata};
@@ -91,7 +91,8 @@ class import_t
9191
need_dependencies ? new full_dependency_manager_t{middle}
9292
: new dependency_manager_t{});
9393

94-
osmdata_t osmdata{std::move(dependency_manager), middle, outputs};
94+
osmdata_t osmdata{std::move(dependency_manager), middle, outputs,
95+
options};
9596

9697
osmdata.start();
9798

0 commit comments

Comments
 (0)