1 #ifndef OSMIUM_HANDLER_CHAIN_HPP 2 #define OSMIUM_HANDLER_CHAIN_HPP 40 #define OSMIUM_CHAIN_HANDLER_CALL(_func_, _type_) \ 41 template <int N, int SIZE, typename THandlers> \ 42 struct call_ ## _func_ { \ 43 void operator()(THandlers& handlers, osmium::_type_& object) { \ 44 std::get<N>(handlers)._func_(object); \ 45 call_ ## _func_<N+1, SIZE, THandlers>()(handlers, object); \ 48 template <int SIZE, typename THandlers> \ 49 struct call_ ## _func_<SIZE, SIZE, THandlers> { \ 50 void operator()(THandlers&, osmium::_type_&) {} \ 67 template <
typename... THandler>
73 template <
int N,
int SIZE,
typename THandlers>
76 std::get<N>(handlers).
flush();
81 template <
int SIZE,
typename THandlers>
95 m_handlers(handlers...) {
128 #endif // OSMIUM_HANDLER_CHAIN_HPP #define OSMIUM_CHAIN_HANDLER_CALL(_func_, _type_)
Definition: chain.hpp:40
void changeset(osmium::Changeset &changeset)
Definition: chain.hpp:110
Definition: relation.hpp:163
Definition: handler.hpp:71
std::tuple< THandler &... > handlers_type
Definition: chain.hpp:70
Namespace for everything in the Osmium library.
Definition: assembler.hpp:73
handlers_type m_handlers
Definition: chain.hpp:71
void relation(osmium::Relation &relation)
Definition: chain.hpp:106
void node(osmium::Node &node)
Definition: chain.hpp:98
void way(osmium::Way &way)
Definition: chain.hpp:102
void area(osmium::Area &area)
Definition: chain.hpp:114
void operator()(THandlers &handlers)
Definition: chain.hpp:75
An OSM Changeset, a group of changes made by a single user over a short period of time...
Definition: changeset.hpp:148
ChainHandler(THandler &... handlers)
Definition: chain.hpp:94
void operator()(THandlers &)
Definition: chain.hpp:83
void flush()
Definition: chain.hpp:118