Libosmium
Fast and flexible C++ library for working with OpenStreetMap data
Loading...
Searching...
No Matches
osmium::index::RelationsMapStash Class Reference

#include <relations_map.hpp>

Collaboration diagram for osmium::index::RelationsMapStash:

Public Member Functions

 RelationsMapStash ()=default
 RelationsMapStash (const RelationsMapStash &)=delete
RelationsMapStashoperator= (const RelationsMapStash &)=delete
 RelationsMapStash (RelationsMapStash &&) noexcept
RelationsMapStashoperator= (RelationsMapStash &&) noexcept
 ~RelationsMapStash () noexcept=default
void add (const osmium::unsigned_object_id_type member_id, const osmium::unsigned_object_id_type relation_id)
void add_members (const osmium::Relation &relation)
bool empty () const noexcept
std::size_t size () const noexcept
std::pair< std::size_t, std::size_t > sizes () const noexcept
RelationsMapIndex build_member_to_parent_index ()
RelationsMapIndex build_parent_to_member_index ()
RelationsMapIndexes build_indexes ()

Static Private Member Functions

static void append32to64 (detail::rel_index_map_type< uint32_t > &map32, detail::rel_index_map_type< uint64_t > &map64)

Private Attributes

detail::rel_index_map_type< uint32_t > m_map32
detail::rel_index_map_type< uint64_t > m_map64
bool m_valid = true

Detailed Description

The RelationsMapStash is used to build up the data needed to create an index of member relation ID to parent relation ID or the other way around. See the RelationsMapIndex class for more.

Constructor & Destructor Documentation

◆ RelationsMapStash() [1/3]

osmium::index::RelationsMapStash::RelationsMapStash ( )
default

◆ RelationsMapStash() [2/3]

osmium::index::RelationsMapStash::RelationsMapStash ( const RelationsMapStash & )
delete

◆ RelationsMapStash() [3/3]

osmium::index::RelationsMapStash::RelationsMapStash ( RelationsMapStash && )
inlinedefaultnoexcept

◆ ~RelationsMapStash()

osmium::index::RelationsMapStash::~RelationsMapStash ( )
defaultnoexcept

Member Function Documentation

◆ add()

void osmium::index::RelationsMapStash::add ( const osmium::unsigned_object_id_type member_id,
const osmium::unsigned_object_id_type relation_id )
inline

Add mapping from member to parent relation in the stash.

◆ add_members()

void osmium::index::RelationsMapStash::add_members ( const osmium::Relation & relation)
inline

Add mapping from all members to given parent relation in the stash.

◆ append32to64()

void osmium::index::RelationsMapStash::append32to64 ( detail::rel_index_map_type< uint32_t > & map32,
detail::rel_index_map_type< uint64_t > & map64 )
inlinestaticprivate

◆ build_indexes()

RelationsMapIndexes osmium::index::RelationsMapStash::build_indexes ( )
inline

Build indexes for member-to-parent and parent-to-member lookups from the contents of this stash and return them.

After you get the index you can not use the stash any more!

◆ build_member_to_parent_index()

RelationsMapIndex osmium::index::RelationsMapStash::build_member_to_parent_index ( )
inline

Build an index for member to parent lookups from the contents of this stash and return it.

After you get the index you can not use the stash any more!

◆ build_parent_to_member_index()

RelationsMapIndex osmium::index::RelationsMapStash::build_parent_to_member_index ( )
inline

Build an index for parent to member lookups from the contents of this stash and return it.

After you get the index you can not use the stash any more!

◆ empty()

bool osmium::index::RelationsMapStash::empty ( ) const
inlinenoexcept

Is this stash empty?

Complexity: Constant.

◆ operator=() [1/2]

RelationsMapStash & osmium::index::RelationsMapStash::operator= ( const RelationsMapStash & )
delete

◆ operator=() [2/2]

RelationsMapStash & osmium::index::RelationsMapStash::operator= ( RelationsMapStash && )
inlinedefaultnoexcept

◆ size()

std::size_t osmium::index::RelationsMapStash::size ( ) const
inlinenoexcept

How many entries are in this stash?

Complexity: Constant.

◆ sizes()

std::pair< std::size_t, std::size_t > osmium::index::RelationsMapStash::sizes ( ) const
inlinenoexcept

How many "small" and "large" entries are in this stash? For tests and debugging only!

Complexity: Constant.

Member Data Documentation

◆ m_map32

detail::rel_index_map_type<uint32_t> osmium::index::RelationsMapStash::m_map32
private

◆ m_map64

detail::rel_index_map_type<uint64_t> osmium::index::RelationsMapStash::m_map64
private

◆ m_valid

bool osmium::index::RelationsMapStash::m_valid = true
private

The documentation for this class was generated from the following file: