Libosmium  2.10.3
Fast and flexible C++ library for working with OpenStreetMap data
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
osmium::index::IdSetDense< T > Class Template Reference

#include <id_set.hpp>

Inheritance diagram for osmium::index::IdSetDense< T >:
Inheritance graph
[legend]
Collaboration diagram for osmium::index::IdSetDense< T >:
Collaboration graph
[legend]

Public Types

using const_iterator = IdSetDenseIterator< T >
 

Public Member Functions

 IdSetDense ()=default
 
bool check_and_set (T id)
 
void set (T id) overridefinal
 
void unset (T id)
 
bool get (T id) const noexceptoverridefinal
 
bool empty () const noexceptoverridefinal
 
size () const noexcept
 
void clear () overridefinal
 
IdSetDenseIterator< T > begin () const
 
IdSetDenseIterator< T > end () const
 
- Public Member Functions inherited from osmium::index::IdSet< T >
virtual ~IdSet ()
 

Private Member Functions

last () const noexcept
 
unsigned char & get_element (T id)
 

Static Private Member Functions

static size_t chunk_id (T id) noexcept
 
static size_t offset (T id) noexcept
 
static unsigned char bitmask (T id) noexcept
 

Private Attributes

std::vector< std::unique_ptr
< unsigned char[]> > 
m_data
 
m_size = 0
 

Static Private Attributes

static constexpr const size_t chunk_bits = 22
 
static constexpr const size_t chunk_size = 1 << chunk_bits
 

Friends

class IdSetDenseIterator< T >
 

Detailed Description

template<typename T>
class osmium::index::IdSetDense< T >

A set of Ids of the given type. Internal storage is in chunks of arrays used as bit fields. Internally those chunks will be allocated as needed, so it works relatively efficiently with both smaller and larger Id sets. If it is not used, no memory is allocated at all.

Member Typedef Documentation

template<typename T>
using osmium::index::IdSetDense< T >::const_iterator = IdSetDenseIterator<T>

Constructor & Destructor Documentation

template<typename T>
osmium::index::IdSetDense< T >::IdSetDense ( )
default

Member Function Documentation

template<typename T>
IdSetDenseIterator<T> osmium::index::IdSetDense< T >::begin ( ) const
inline
template<typename T>
static unsigned char osmium::index::IdSetDense< T >::bitmask ( id)
inlinestaticprivatenoexcept
template<typename T>
bool osmium::index::IdSetDense< T >::check_and_set ( id)
inline

Add the Id to the set if it is not already in there.

Parameters
idThe Id to set.
Returns
true if the Id was added, false if it was already set.
template<typename T>
static size_t osmium::index::IdSetDense< T >::chunk_id ( id)
inlinestaticprivatenoexcept
template<typename T>
void osmium::index::IdSetDense< T >::clear ( )
inlinefinaloverridevirtual

Clear the set.

Implements osmium::index::IdSet< T >.

template<typename T>
bool osmium::index::IdSetDense< T >::empty ( ) const
inlinefinaloverridevirtualnoexcept

Is the set empty?

Implements osmium::index::IdSet< T >.

template<typename T>
IdSetDenseIterator<T> osmium::index::IdSetDense< T >::end ( ) const
inline
template<typename T>
bool osmium::index::IdSetDense< T >::get ( id) const
inlinefinaloverridevirtualnoexcept

Is the Id in the set?

Parameters
idThe Id to check.

Implements osmium::index::IdSet< T >.

template<typename T>
unsigned char& osmium::index::IdSetDense< T >::get_element ( id)
inlineprivate
template<typename T>
T osmium::index::IdSetDense< T >::last ( ) const
inlineprivatenoexcept
template<typename T>
static size_t osmium::index::IdSetDense< T >::offset ( id)
inlinestaticprivatenoexcept
template<typename T>
void osmium::index::IdSetDense< T >::set ( id)
inlinefinaloverridevirtual

Add the given Id to the set.

Parameters
idThe Id to set.

Implements osmium::index::IdSet< T >.

template<typename T>
T osmium::index::IdSetDense< T >::size ( ) const
inlinenoexcept

The number of Ids stored in the set.

template<typename T>
void osmium::index::IdSetDense< T >::unset ( id)
inline

Remove the given Id from the set.

Parameters
idThe Id to set.

Friends And Related Function Documentation

template<typename T>
friend class IdSetDenseIterator< T >
friend

Member Data Documentation

template<typename T>
constexpr const size_t osmium::index::IdSetDense< T >::chunk_bits = 22
staticprivate
template<typename T>
constexpr const size_t osmium::index::IdSetDense< T >::chunk_size = 1 << chunk_bits
staticprivate
template<typename T>
std::vector<std::unique_ptr<unsigned char[]> > osmium::index::IdSetDense< T >::m_data
private
template<typename T>
T osmium::index::IdSetDense< T >::m_size = 0
private

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