Libosmium  2.22.0
Fast and flexible C++ library for working with OpenStreetMap data
Public Member Functions | Static Private Member Functions | Private Attributes | List of all members
osmium::index::RelationsMapStash Class Reference

#include <relations_map.hpp>

Collaboration diagram for osmium::index::RelationsMapStash:
Collaboration graph
[legend]

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()

static 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: