rippled
Public Types | Public Member Functions | Protected Types | Private Attributes | List of all members
beast::LockFreeStackIterator< Container, IsConst > Class Template Reference
Collaboration diagram for beast::LockFreeStackIterator< Container, IsConst >:
Collaboration graph
[legend]

Public Types

using iterator_category = std::forward_iterator_tag
 
using value_type = typename Container::value_type
 
using difference_type = typename Container::difference_type
 
using pointer = typename std::conditional< IsConst, typename Container::const_pointer, typename Container::pointer >::type
 
using reference = typename std::conditional< IsConst, typename Container::const_reference, typename Container::reference >::type
 

Public Member Functions

 LockFreeStackIterator ()
 
 LockFreeStackIterator (NodePtr node)
 
template<bool OtherIsConst>
 LockFreeStackIterator (LockFreeStackIterator< Container, OtherIsConst > const &other)
 
LockFreeStackIteratoroperator= (NodePtr node)
 
LockFreeStackIteratoroperator++ ()
 
LockFreeStackIterator operator++ (int)
 
NodePtr node () const
 
reference operator* () const
 
pointer operator-> () const
 

Protected Types

using Node = typename Container::Node
 
using NodePtr = typename std::conditional< IsConst, Node const *, Node * >::type
 

Private Attributes

NodePtr m_node
 

Detailed Description

template<class Container, bool IsConst>
class beast::LockFreeStackIterator< Container, IsConst >

Definition at line 32 of file LockFreeStack.h.

Member Typedef Documentation

◆ Node

template<class Container , bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::Node = typename Container::Node
protected

Definition at line 35 of file LockFreeStack.h.

◆ NodePtr

template<class Container , bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::NodePtr = typename std::conditional<IsConst, Node const*, Node*>::type
protected

Definition at line 37 of file LockFreeStack.h.

◆ iterator_category

template<class Container , bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::iterator_category = std::forward_iterator_tag

Definition at line 40 of file LockFreeStack.h.

◆ value_type

template<class Container , bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::value_type = typename Container::value_type

Definition at line 41 of file LockFreeStack.h.

◆ difference_type

template<class Container , bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::difference_type = typename Container::difference_type

Definition at line 42 of file LockFreeStack.h.

◆ pointer

template<class Container , bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::pointer = typename std::conditional< IsConst, typename Container::const_pointer, typename Container::pointer>::type

Definition at line 46 of file LockFreeStack.h.

◆ reference

template<class Container , bool IsConst>
using beast::LockFreeStackIterator< Container, IsConst >::reference = typename std::conditional< IsConst, typename Container::const_reference, typename Container::reference>::type

Definition at line 50 of file LockFreeStack.h.

Constructor & Destructor Documentation

◆ LockFreeStackIterator() [1/3]

template<class Container , bool IsConst>
beast::LockFreeStackIterator< Container, IsConst >::LockFreeStackIterator ( )

Definition at line 52 of file LockFreeStack.h.

◆ LockFreeStackIterator() [2/3]

template<class Container , bool IsConst>
beast::LockFreeStackIterator< Container, IsConst >::LockFreeStackIterator ( NodePtr  node)

Definition at line 56 of file LockFreeStack.h.

◆ LockFreeStackIterator() [3/3]

template<class Container , bool IsConst>
template<bool OtherIsConst>
beast::LockFreeStackIterator< Container, IsConst >::LockFreeStackIterator ( LockFreeStackIterator< Container, OtherIsConst > const &  other)
explicit

Definition at line 61 of file LockFreeStack.h.

Member Function Documentation

◆ operator=()

template<class Container , bool IsConst>
LockFreeStackIterator& beast::LockFreeStackIterator< Container, IsConst >::operator= ( NodePtr  node)

Definition at line 68 of file LockFreeStack.h.

◆ operator++() [1/2]

template<class Container , bool IsConst>
LockFreeStackIterator& beast::LockFreeStackIterator< Container, IsConst >::operator++ ( )

Definition at line 75 of file LockFreeStack.h.

◆ operator++() [2/2]

template<class Container , bool IsConst>
LockFreeStackIterator beast::LockFreeStackIterator< Container, IsConst >::operator++ ( int  )

Definition at line 82 of file LockFreeStack.h.

◆ node()

template<class Container , bool IsConst>
NodePtr beast::LockFreeStackIterator< Container, IsConst >::node ( ) const

Definition at line 90 of file LockFreeStack.h.

◆ operator*()

template<class Container , bool IsConst>
reference beast::LockFreeStackIterator< Container, IsConst >::operator* ( ) const

Definition at line 96 of file LockFreeStack.h.

◆ operator->()

template<class Container , bool IsConst>
pointer beast::LockFreeStackIterator< Container, IsConst >::operator-> ( ) const

Definition at line 102 of file LockFreeStack.h.

Member Data Documentation

◆ m_node

template<class Container , bool IsConst>
NodePtr beast::LockFreeStackIterator< Container, IsConst >::m_node
private

Definition at line 108 of file LockFreeStack.h.