Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::lockfree::detail::ringbuffer_base< T > Class Template Reference

#include <spsc_queue.hpp>

Inheritance diagram for boost::lockfree::detail::ringbuffer_base< T >:

Public Member Functions

void reset (void)
 reset the ringbuffer More...
 
bool empty (void)
 Check if the ringbuffer is empty. More...
 
bool is_lock_free (void) const
 

Protected Member Functions

 ringbuffer_base (void)
 
size_t read_available (size_t max_size) const
 
size_t write_available (size_t max_size) const
 
bool push (T const &t, T *buffer, size_t max_size)
 
size_t push (const T *input_buffer, size_t input_count, T *internal_buffer, size_t max_size)
 
template<typename ConstIterator >
ConstIterator push (ConstIterator begin, ConstIterator end, T *internal_buffer, size_t max_size)
 
template<typename Functor >
bool consume_one (Functor &functor, T *buffer, size_t max_size)
 
template<typename Functor >
bool consume_one (Functor const &functor, T *buffer, size_t max_size)
 
template<typename Functor >
size_t consume_all (Functor const &functor, T *internal_buffer, size_t max_size)
 
template<typename Functor >
size_t consume_all (Functor &functor, T *internal_buffer, size_t max_size)
 
size_t pop (T *output_buffer, size_t output_count, T *internal_buffer, size_t max_size)
 
template<typename OutputIterator >
size_t pop_to_output_iterator (OutputIterator it, T *internal_buffer, size_t max_size)
 
const Tfront (const T *internal_buffer) const
 
Tfront (T *internal_buffer)
 

Static Protected Member Functions

static size_t next_index (size_t arg, size_t max_size)
 
static size_t read_available (size_t write_index, size_t read_index, size_t max_size)
 
static size_t write_available (size_t write_index, size_t read_index, size_t max_size)
 

Constructor & Destructor Documentation

template<typename T >
boost::lockfree::detail::ringbuffer_base< T >::ringbuffer_base ( void  )
inlineprotected

Member Function Documentation

template<typename T >
template<typename Functor >
size_t boost::lockfree::detail::ringbuffer_base< T >::consume_all ( Functor &  functor,
T internal_buffer,
size_t  max_size 
)
inlineprotected
template<typename T >
template<typename Functor >
bool boost::lockfree::detail::ringbuffer_base< T >::consume_one ( Functor const &  functor,
T buffer,
size_t  max_size 
)
inlineprotected
template<typename T >
bool boost::lockfree::detail::ringbuffer_base< T >::empty ( void  )
inline

Check if the ringbuffer is empty.

Returns
true, if the ringbuffer is empty, false otherwise
Note
Due to the concurrent nature of the ringbuffer the result may be inaccurate.

References boost::memory_order_relaxed.

Referenced by boost::lockfree::detail::ringbuffer_base< T >::consume_one().

template<typename T >
T& boost::lockfree::detail::ringbuffer_base< T >::front ( T internal_buffer)
inlineprotected
template<typename T >
bool boost::lockfree::detail::ringbuffer_base< T >::is_lock_free ( void  ) const
inline
Returns
true, if implementation is lock-free.
template<typename T >
static size_t boost::lockfree::detail::ringbuffer_base< T >::next_index ( size_t  arg,
size_t  max_size 
)
inlinestaticprotected
template<typename T >
size_t boost::lockfree::detail::ringbuffer_base< T >::push ( const T input_buffer,
size_t  input_count,
T internal_buffer,
size_t  max_size 
)
inlineprotected
template<typename T >
size_t boost::lockfree::detail::ringbuffer_base< T >::read_available ( size_t  max_size) const
inlineprotected
template<typename T >
void boost::lockfree::detail::ringbuffer_base< T >::reset ( void  )
inline
template<typename T >
static size_t boost::lockfree::detail::ringbuffer_base< T >::write_available ( size_t  write_index,
size_t  read_index,
size_t  max_size 
)
inlinestaticprotected
template<typename T >
size_t boost::lockfree::detail::ringbuffer_base< T >::write_available ( size_t  max_size) const
inlineprotected

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