ipcq 0.12.0
Loading...
Searching...
No Matches
ipcq::detail::Iterator< Buff, Traits > Struct Template Reference

Provides standard iterator concept to ipcq queue. More...

#include <iterator.hpp>

Iterator concept

using iterator_category = std::random_access_iterator_tag
 
using value_type = typename Traits::value_type
 
using pointer = typename Traits::pointer
 
using reference = typename Traits::reference
 
using difference_type = typename Traits::difference_type
 
using size_type = typename Traits::size_type
 
const Buff * m_buff
 
pointer m_it
 
 Iterator ()
 
 Iterator (const Buff *buff, const pointer p)
 
constexpr reference operator* () const noexcept
 Dereferencing operator.
 
constexpr pointer operator-> () const noexcept
 Dereferencing operator.
 
template<class Traits0>
constexpr difference_type operator- (const Iterator< Buff, Traits0 > &it) const noexcept
 Difference operator.
 
constexpr Iterator & operator++ () noexcept
 Increment operator (prefix)
 
constexpr Iterator operator++ (int) noexcept
 Increment operator (postfix)
 
constexpr Iterator & operator+= (difference_type n) noexcept
 Iterator addition.
 
constexpr Iterator operator+ (difference_type n) const noexcept
 
reference operator[] (difference_type n) const
 Random access operator.
 
template<class Traits0>
constexpr bool operator== (const Iterator< Buff, Traits0 > &it) const noexcept
 
template<class Traits0>
constexpr bool operator!= (const Iterator< Buff, Traits0 > &it) const noexcept
 
template<class Traits0>
constexpr bool operator< (const Iterator< Buff, Traits0 > &it) const noexcept
 Less.
 
template<class Traits0>
constexpr bool operator> (const Iterator< Buff, Traits0 > &it) const noexcept
 Greater.
 
template<class Traits0>
constexpr bool operator<= (const Iterator< Buff, Traits0 > &it) const noexcept
 Less or equal.
 
template<class Traits0>
constexpr bool operator>= (const Iterator< Buff, Traits0 > &it) const noexcept
 Greater or equal.
 
template<class Traits0>
constexpr Traits0::pointer Linearize (const Iterator< Buff, Traits0 > &it) const noexcept
 Get a pointer which would point to the same element as the Iterator in case the circular buffer is linearized.
 
std::ostream & Str (std::ostream &os) const noexcept
 
std::ostream & operator<< (std::ostream &os, Iterator const &it)
 

Detailed Description

template<class Buff, class Traits>
struct ipcq::detail::Iterator< Buff, Traits >

Provides standard iterator concept to ipcq queue.

The special iterator value 0 means "end".

Definition at line 23 of file iterator.hpp.

Member Typedef Documentation

◆ difference_type

template<class Buff, class Traits>
using ipcq::detail::Iterator< Buff, Traits >::difference_type = typename Traits::difference_type

Definition at line 30 of file iterator.hpp.

◆ iterator_category

template<class Buff, class Traits>
using ipcq::detail::Iterator< Buff, Traits >::iterator_category = std::random_access_iterator_tag

Definition at line 26 of file iterator.hpp.

◆ pointer

template<class Buff, class Traits>
using ipcq::detail::Iterator< Buff, Traits >::pointer = typename Traits::pointer

Definition at line 28 of file iterator.hpp.

◆ reference

template<class Buff, class Traits>
using ipcq::detail::Iterator< Buff, Traits >::reference = typename Traits::reference

Definition at line 29 of file iterator.hpp.

◆ size_type

template<class Buff, class Traits>
using ipcq::detail::Iterator< Buff, Traits >::size_type = typename Traits::size_type

Definition at line 31 of file iterator.hpp.

◆ value_type

template<class Buff, class Traits>
using ipcq::detail::Iterator< Buff, Traits >::value_type = typename Traits::value_type

Definition at line 27 of file iterator.hpp.

Constructor & Destructor Documentation

◆ Iterator() [1/2]

template<class Buff, class Traits>
ipcq::detail::Iterator< Buff, Traits >::Iterator ( )
inline

Definition at line 38 of file iterator.hpp.

◆ Iterator() [2/2]

template<class Buff, class Traits>
ipcq::detail::Iterator< Buff, Traits >::Iterator ( const Buff * buff,
const pointer p )
inlineexplicit

Definition at line 39 of file iterator.hpp.

Member Function Documentation

◆ Linearize()

template<class Buff, class Traits>
template<class Traits0>
Traits0::pointer ipcq::detail::Iterator< Buff, Traits >::Linearize ( const Iterator< Buff, Traits0 > & it) const
inlineconstexprnoexcept

Get a pointer which would point to the same element as the Iterator in case the circular buffer is linearized.

Definition at line 163 of file iterator.hpp.

◆ operator!=()

template<class Buff, class Traits>
template<class Traits0>
bool ipcq::detail::Iterator< Buff, Traits >::operator!= ( const Iterator< Buff, Traits0 > & it) const
inlineconstexprnoexcept

Definition at line 121 of file iterator.hpp.

◆ operator*()

template<class Buff, class Traits>
reference ipcq::detail::Iterator< Buff, Traits >::operator* ( ) const
inlineconstexprnoexcept

Dereferencing operator.

Definition at line 45 of file iterator.hpp.

◆ operator+()

template<class Buff, class Traits>
Iterator ipcq::detail::Iterator< Buff, Traits >::operator+ ( difference_type n) const
inlineconstexprnoexcept

Definition at line 102 of file iterator.hpp.

◆ operator++() [1/2]

template<class Buff, class Traits>
Iterator & ipcq::detail::Iterator< Buff, Traits >::operator++ ( )
inlineconstexprnoexcept

Increment operator (prefix)

Definition at line 67 of file iterator.hpp.

◆ operator++() [2/2]

template<class Buff, class Traits>
Iterator ipcq::detail::Iterator< Buff, Traits >::operator++ ( int )
inlineconstexprnoexcept

Increment operator (postfix)

Definition at line 80 of file iterator.hpp.

◆ operator+=()

template<class Buff, class Traits>
Iterator & ipcq::detail::Iterator< Buff, Traits >::operator+= ( difference_type n)
inlineconstexprnoexcept

Iterator addition.

Definition at line 89 of file iterator.hpp.

◆ operator-()

template<class Buff, class Traits>
template<class Traits0>
difference_type ipcq::detail::Iterator< Buff, Traits >::operator- ( const Iterator< Buff, Traits0 > & it) const
inlineconstexprnoexcept

Difference operator.

Definition at line 60 of file iterator.hpp.

◆ operator->()

template<class Buff, class Traits>
pointer ipcq::detail::Iterator< Buff, Traits >::operator-> ( ) const
inlineconstexprnoexcept

Dereferencing operator.

Definition at line 52 of file iterator.hpp.

◆ operator<()

template<class Buff, class Traits>
template<class Traits0>
bool ipcq::detail::Iterator< Buff, Traits >::operator< ( const Iterator< Buff, Traits0 > & it) const
inlineconstexprnoexcept

Less.

Definition at line 129 of file iterator.hpp.

◆ operator<=()

template<class Buff, class Traits>
template<class Traits0>
bool ipcq::detail::Iterator< Buff, Traits >::operator<= ( const Iterator< Buff, Traits0 > & it) const
inlineconstexprnoexcept

Less or equal.

Definition at line 145 of file iterator.hpp.

◆ operator==()

template<class Buff, class Traits>
template<class Traits0>
bool ipcq::detail::Iterator< Buff, Traits >::operator== ( const Iterator< Buff, Traits0 > & it) const
inlineconstexprnoexcept

Definition at line 116 of file iterator.hpp.

◆ operator>()

template<class Buff, class Traits>
template<class Traits0>
bool ipcq::detail::Iterator< Buff, Traits >::operator> ( const Iterator< Buff, Traits0 > & it) const
inlineconstexprnoexcept

Greater.

Definition at line 137 of file iterator.hpp.

◆ operator>=()

template<class Buff, class Traits>
template<class Traits0>
bool ipcq::detail::Iterator< Buff, Traits >::operator>= ( const Iterator< Buff, Traits0 > & it) const
inlineconstexprnoexcept

Greater or equal.

Definition at line 153 of file iterator.hpp.

◆ operator[]()

template<class Buff, class Traits>
reference ipcq::detail::Iterator< Buff, Traits >::operator[] ( difference_type n) const
inline

Random access operator.

Definition at line 111 of file iterator.hpp.

◆ Str()

template<class Buff, class Traits>
std::ostream & ipcq::detail::Iterator< Buff, Traits >::Str ( std::ostream & os) const
inlinenoexcept

Definition at line 173 of file iterator.hpp.

Friends And Related Symbol Documentation

◆ operator<<

template<class Buff, class Traits>
std::ostream & operator<< ( std::ostream & os,
Iterator< Buff, Traits > const & it )
friend

Definition at line 179 of file iterator.hpp.

Member Data Documentation

◆ m_buff

template<class Buff, class Traits>
const Buff* ipcq::detail::Iterator< Buff, Traits >::m_buff

Definition at line 34 of file iterator.hpp.

◆ m_it

template<class Buff, class Traits>
pointer ipcq::detail::Iterator< Buff, Traits >::m_it

Definition at line 35 of file iterator.hpp.


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