1#ifndef OSMIUM_RELATIONS_RELATIONS_DATABASE_HPP
2#define OSMIUM_RELATIONS_RELATIONS_DATABASE_HPP
114 std::size_t&
members(std::size_t pos)
noexcept {
155 std::size_t
size() const noexcept {
186 return elem.handle.valid();
197 template <
typename TFunc>
238 std::size_t
pos() const noexcept {
313 assert(pos < m_elements.size());
322 template <
typename TFunc>
324 for (std::size_t pos = 0; pos <
m_elements.size(); ++pos) {
Definition: item_stash.hpp:71
Definition: item_stash.hpp:57
T & get(handle_type handle) const
Definition: item_stash.hpp:294
void remove_item(handle_type handle)
Definition: item_stash.hpp:338
handle_type add_item(const osmium::memory::Item &item)
Definition: item_stash.hpp:251
Definition: relation.hpp:161
Definition: relations_database.hpp:208
void remove()
Definition: relations_database.hpp:274
void decrement_members() noexcept
Definition: relations_database.hpp:297
RelationsDatabase * m_relation_database
Definition: relations_database.hpp:212
RelationHandle(RelationsDatabase *relation_database, std::size_t pos)
Definition: relations_database.hpp:215
Relation * operator->()
Definition: relations_database.hpp:259
std::size_t m_pos
Definition: relations_database.hpp:213
std::size_t pos() const noexcept
Definition: relations_database.hpp:238
const Relation & operator*() const
Definition: relations_database.hpp:252
RelationsDatabase * relation_database() const noexcept
Definition: relations_database.hpp:225
Relation & operator*()
Definition: relations_database.hpp:245
void set_members(std::size_t value) noexcept
Definition: relations_database.hpp:281
bool has_all_members() const noexcept
Definition: relations_database.hpp:306
const Relation * operator->() const
Definition: relations_database.hpp:266
void increment_members() noexcept
Definition: relations_database.hpp:288
Definition: relations_database.hpp:82
void for_each_relation(TFunc &&func)
Definition: relations_database.hpp:323
RelationHandle operator[](std::size_t pos) noexcept
Definition: relations_database.hpp:312
std::size_t size() const noexcept
Definition: relations_database.hpp:155
osmium::ItemStash & m_stash
Definition: relations_database.hpp:102
std::size_t & members(std::size_t pos) noexcept
Definition: relations_database.hpp:114
std::size_t count_relations() const noexcept
Definition: relations_database.hpp:184
RelationHandle add(const osmium::Relation &relation)
Definition: relations_database.hpp:317
std::size_t used_memory() const noexcept
Definition: relations_database.hpp:144
void remove(std::size_t pos)
Definition: relations_database.hpp:118
osmium::Relation & get_relation(std::size_t pos)
Definition: relations_database.hpp:105
std::vector< element > m_elements
Definition: relations_database.hpp:103
RelationsDatabase(osmium::ItemStash &stash)
Definition: relations_database.hpp:133
@ relation
Definition: entity_bits.hpp:70
Namespace for everything in the Osmium library.
Definition: assembler.hpp:53
Definition: relations_database.hpp:86
std::size_t members
Definition: relations_database.hpp:98
osmium::ItemStash::handle_type handle
A handle to the relation in the ItemStash.
Definition: relations_database.hpp:89