MySQL 9.3.0
Source Code Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
helper::container::CycleBuffer< buffer_size, Container > Class Template Reference

#include <cyclic_buffer.h>

Inheritance diagram for helper::container::CycleBuffer< buffer_size, Container >:
[legend]

Classes

class  Const_position
 
class  Iterator
 
class  Position
 

Public Types

using iterator = Iterator< Position >
 
using const_iterator = Iterator< Const_position, const CycleBuffer, Cconst_reference >
 

Public Member Functions

 CycleBuffer ()
 
Container & container ()
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
template<typename V >
void push_back (V &&v)
 
uint32_t size () const
 
bool empty () const
 
value_typefront ()
 
value_typeback ()
 
void pop_front ()
 
void pop_back ()
 

Private Types

using Cbuffer = CycleBuffer< buffer_size, Container >
 
using Cinterator = typename Container::iterator
 
using Cpointer = typename Container::pointer
 
using Cconst_interator = typename Container::const_iterator
 
using Creference = typename Container::reference
 
using Cconst_reference = typename Container::const_reference
 
using value_type = typename Container::value_type
 

Private Member Functions

void try_resize (std::array< value_type, buffer_size > &)
 
template<typename C >
void try_resize (C &c)
 

Private Attributes

Container container_
 
uint32_t elements_ {0}
 
Position begin_ {container_.begin(), 0}
 
Position end_ {container_.begin(), 0}
 

Member Typedef Documentation

◆ Cbuffer

template<uint32_t buffer_size, typename Container >
using helper::container::CycleBuffer< buffer_size, Container >::Cbuffer = CycleBuffer<buffer_size, Container>
private

◆ Cconst_interator

template<uint32_t buffer_size, typename Container >
using helper::container::CycleBuffer< buffer_size, Container >::Cconst_interator = typename Container::const_iterator
private

◆ Cconst_reference

template<uint32_t buffer_size, typename Container >
using helper::container::CycleBuffer< buffer_size, Container >::Cconst_reference = typename Container::const_reference
private

◆ Cinterator

template<uint32_t buffer_size, typename Container >
using helper::container::CycleBuffer< buffer_size, Container >::Cinterator = typename Container::iterator
private

◆ const_iterator

template<uint32_t buffer_size, typename Container >
using helper::container::CycleBuffer< buffer_size, Container >::const_iterator = Iterator<Const_position, const CycleBuffer, Cconst_reference>

◆ Cpointer

template<uint32_t buffer_size, typename Container >
using helper::container::CycleBuffer< buffer_size, Container >::Cpointer = typename Container::pointer
private

◆ Creference

template<uint32_t buffer_size, typename Container >
using helper::container::CycleBuffer< buffer_size, Container >::Creference = typename Container::reference
private

◆ iterator

template<uint32_t buffer_size, typename Container >
using helper::container::CycleBuffer< buffer_size, Container >::iterator = Iterator<Position>

◆ value_type

template<uint32_t buffer_size, typename Container >
using helper::container::CycleBuffer< buffer_size, Container >::value_type = typename Container::value_type
private

Constructor & Destructor Documentation

◆ CycleBuffer()

template<uint32_t buffer_size, typename Container >
helper::container::CycleBuffer< buffer_size, Container >::CycleBuffer ( )
inline

Member Function Documentation

◆ back()

template<uint32_t buffer_size, typename Container >
value_type & helper::container::CycleBuffer< buffer_size, Container >::back ( )
inline

◆ begin() [1/2]

template<uint32_t buffer_size, typename Container >
iterator helper::container::CycleBuffer< buffer_size, Container >::begin ( )
inline

◆ begin() [2/2]

template<uint32_t buffer_size, typename Container >
const_iterator helper::container::CycleBuffer< buffer_size, Container >::begin ( ) const
inline

◆ container()

template<uint32_t buffer_size, typename Container >
Container & helper::container::CycleBuffer< buffer_size, Container >::container ( )
inline

◆ empty()

template<uint32_t buffer_size, typename Container >
bool helper::container::CycleBuffer< buffer_size, Container >::empty ( ) const
inline

◆ end() [1/2]

template<uint32_t buffer_size, typename Container >
iterator helper::container::CycleBuffer< buffer_size, Container >::end ( )
inline

◆ end() [2/2]

template<uint32_t buffer_size, typename Container >
const_iterator helper::container::CycleBuffer< buffer_size, Container >::end ( ) const
inline

◆ front()

template<uint32_t buffer_size, typename Container >
value_type & helper::container::CycleBuffer< buffer_size, Container >::front ( )
inline

◆ pop_back()

template<uint32_t buffer_size, typename Container >
void helper::container::CycleBuffer< buffer_size, Container >::pop_back ( )
inline

◆ pop_front()

template<uint32_t buffer_size, typename Container >
void helper::container::CycleBuffer< buffer_size, Container >::pop_front ( )
inline

◆ push_back()

template<uint32_t buffer_size, typename Container >
template<typename V >
void helper::container::CycleBuffer< buffer_size, Container >::push_back ( V &&  v)
inline

◆ size()

template<uint32_t buffer_size, typename Container >
uint32_t helper::container::CycleBuffer< buffer_size, Container >::size ( ) const
inline

◆ try_resize() [1/2]

template<uint32_t buffer_size, typename Container >
template<typename C >
void helper::container::CycleBuffer< buffer_size, Container >::try_resize ( C &  c)
inlineprivate

◆ try_resize() [2/2]

template<uint32_t buffer_size, typename Container >
void helper::container::CycleBuffer< buffer_size, Container >::try_resize ( std::array< value_type, buffer_size > &  )
inlineprivate

Member Data Documentation

◆ begin_

template<uint32_t buffer_size, typename Container >
Position helper::container::CycleBuffer< buffer_size, Container >::begin_ {container_.begin(), 0}
private

◆ container_

template<uint32_t buffer_size, typename Container >
Container helper::container::CycleBuffer< buffer_size, Container >::container_
private

◆ elements_

template<uint32_t buffer_size, typename Container >
uint32_t helper::container::CycleBuffer< buffer_size, Container >::elements_ {0}
private

◆ end_

template<uint32_t buffer_size, typename Container >
Position helper::container::CycleBuffer< buffer_size, Container >::end_ {container_.begin(), 0}
private

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