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:167
Definition: handler.hpp:45
Namespace for everything in the Osmium library.
Definition: assembler.hpp:59
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
std::tuple< THandler &... > handlers_type
Definition: chain.hpp:70
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:154
void operator()(THandlers &)
Definition: chain.hpp:83
void flush()
Definition: chain.hpp:118