Libosmium  2.20.0
Fast and flexible C++ library for working with OpenStreetMap data
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
osmium::io::InputIterator< TSource, TItem > Class Template Reference

#include <input_iterator.hpp>

Public Types

using iterator_category = std::input_iterator_tag
 
using value_type = TItem
 
using difference_type = ptrdiff_t
 
using pointer = value_type *
 
using reference = value_type &
 

Public Member Functions

 InputIterator (TSource &source)
 
 InputIterator () noexcept
 
InputIteratoroperator++ ()
 
InputIterator operator++ (int)
 
bool operator== (const InputIterator &rhs) const noexcept
 
bool operator!= (const InputIterator &rhs) const noexcept
 
reference operator* () const
 
pointer operator-> () const
 

Private Types

using item_iterator = typename osmium::memory::Buffer::t_iterator< TItem >
 

Private Member Functions

void update_buffer ()
 

Private Attributes

TSource * m_source
 
std::shared_ptr< osmium::memory::Buffer > m_buffer
 
item_iterator m_iter {}
 

Detailed Description

template<typename TSource, typename TItem = osmium::memory::Item>
class osmium::io::InputIterator< TSource, TItem >

This iterator class allows you to iterate over all items from a source. It hides all the buffer handling and makes the contents of a source accessible as a normal STL input iterator.

Member Typedef Documentation

◆ difference_type

template<typename TSource , typename TItem = osmium::memory::Item>
using osmium::io::InputIterator< TSource, TItem >::difference_type = ptrdiff_t

◆ item_iterator

template<typename TSource , typename TItem = osmium::memory::Item>
using osmium::io::InputIterator< TSource, TItem >::item_iterator = typename osmium::memory::Buffer::t_iterator<TItem>
private

◆ iterator_category

template<typename TSource , typename TItem = osmium::memory::Item>
using osmium::io::InputIterator< TSource, TItem >::iterator_category = std::input_iterator_tag

◆ pointer

template<typename TSource , typename TItem = osmium::memory::Item>
using osmium::io::InputIterator< TSource, TItem >::pointer = value_type*

◆ reference

template<typename TSource , typename TItem = osmium::memory::Item>
using osmium::io::InputIterator< TSource, TItem >::reference = value_type&

◆ value_type

template<typename TSource , typename TItem = osmium::memory::Item>
using osmium::io::InputIterator< TSource, TItem >::value_type = TItem

Constructor & Destructor Documentation

◆ InputIterator() [1/2]

template<typename TSource , typename TItem = osmium::memory::Item>
osmium::io::InputIterator< TSource, TItem >::InputIterator ( TSource &  source)
inlineexplicit

◆ InputIterator() [2/2]

template<typename TSource , typename TItem = osmium::memory::Item>
osmium::io::InputIterator< TSource, TItem >::InputIterator ( )
inlinenoexcept

Member Function Documentation

◆ operator!=()

template<typename TSource , typename TItem = osmium::memory::Item>
bool osmium::io::InputIterator< TSource, TItem >::operator!= ( const InputIterator< TSource, TItem > &  rhs) const
inlinenoexcept

◆ operator*()

template<typename TSource , typename TItem = osmium::memory::Item>
reference osmium::io::InputIterator< TSource, TItem >::operator* ( ) const
inline

◆ operator++() [1/2]

template<typename TSource , typename TItem = osmium::memory::Item>
InputIterator & osmium::io::InputIterator< TSource, TItem >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename TSource , typename TItem = osmium::memory::Item>
InputIterator osmium::io::InputIterator< TSource, TItem >::operator++ ( int  )
inline

◆ operator->()

template<typename TSource , typename TItem = osmium::memory::Item>
pointer osmium::io::InputIterator< TSource, TItem >::operator-> ( ) const
inline

◆ operator==()

template<typename TSource , typename TItem = osmium::memory::Item>
bool osmium::io::InputIterator< TSource, TItem >::operator== ( const InputIterator< TSource, TItem > &  rhs) const
inlinenoexcept

◆ update_buffer()

template<typename TSource , typename TItem = osmium::memory::Item>
void osmium::io::InputIterator< TSource, TItem >::update_buffer ( )
inlineprivate

Member Data Documentation

◆ m_buffer

template<typename TSource , typename TItem = osmium::memory::Item>
std::shared_ptr<osmium::memory::Buffer> osmium::io::InputIterator< TSource, TItem >::m_buffer
private

◆ m_iter

template<typename TSource , typename TItem = osmium::memory::Item>
item_iterator osmium::io::InputIterator< TSource, TItem >::m_iter {}
private

◆ m_source

template<typename TSource , typename TItem = osmium::memory::Item>
TSource* osmium::io::InputIterator< TSource, TItem >::m_source
private

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