Loading [MathJax]/extensions/tex2jax.js
chunkedseq
container library for large in-memory data sets
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Member Functions | Static Public Attributes | List of all members
pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc > Class Template Reference

Fixed-capacity ring buffer. More...

#include <fixedcapacitybase.hpp>

Public Types

typedef Array_alloc::value_type value_type
 
typedef int size_type
 
typedef Item_alloc allocator_type
 
typedef segment< value_type * > segment_type
 
typedef ringbuffer_ptr self_type
 

Public Member Functions

 ringbuffer_ptr ()
 
 ringbuffer_ptr (const ringbuffer_ptr &other)
 
 ringbuffer_ptr (size_type nb, const value_type &val)
 
 ~ringbuffer_ptr ()
 
value_typepointer_of_index (int i) const
 
int index_of_pointer (const value_type *p) const
 
int size () const
 
bool full () const
 
bool empty () const
 
bool partial () const
 
value_typefront () const
 
value_typeback () const
 
void push_front (const value_type &x)
 
void push_back (const value_type &x)
 
value_type pop_front ()
 
value_type pop_back ()
 
void frontn (value_type *dst, int nb) const
 
void backn (value_type *dst, int nb) const
 
void pushn_front (const value_type *src, int nb)
 
void pushn_back (const value_type *src, int nb)
 
template<class Body >
void pushn_back (const Body &body, int nb)
 
void popn_front (int nb)
 
void popn_back (int nb)
 
void popn_front (value_type *dst, int nb)
 
void popn_back (value_type *dst, int nb)
 
void transfer_from_back_to_front (ringbuffer_ptr &target, int nb)
 
void transfer_from_front_to_back (ringbuffer_ptr &target, int nb)
 
value_typeoperator[] (int i) const
 
value_typeoperator[] (size_t i) const
 
void clear ()
 
void swap (ringbuffer_ptr &other)
 
segment_type segment_by_index (int i) const
 
template<class Body >
void for_each (const Body &body) const
 
template<class Body >
void for_each_segment (int lo, int hi, const Body &body) const
 

Static Public Attributes

static constexpr int capacity = Array_alloc::capacity - 1
 

Detailed Description

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
class pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >

Container properties

Warning
The capacity equals Array_alloc::capacity - 1, because the ringbuffer always leaves one cell empty in order to distinguish between the empty and the full container.
Template Parameters
Array_allocType of the allocator object used to define the storage policy of the array that is used by the stack to store the items of the stack.
Item_allocType of the allocator object used to define the storage allocation model. By default, the allocator class template is used, which defines the simplest memory allocation model and is value-independent. Aliased as member type vector::allocator_type.

Definition at line 747 of file fixedcapacitybase.hpp.

Member Typedef Documentation

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
typedef Item_alloc pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::allocator_type

Definition at line 835 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
typedef segment<value_type*> pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::segment_type

Definition at line 836 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
typedef ringbuffer_ptr pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::self_type

Definition at line 837 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
typedef int pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::size_type

Definition at line 834 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
typedef Array_alloc::value_type pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::value_type

Definition at line 750 of file fixedcapacitybase.hpp.

Constructor & Destructor Documentation

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::ringbuffer_ptr ( )
inline

Definition at line 839 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::ringbuffer_ptr ( const ringbuffer_ptr< Array_alloc, Item_alloc > &  other)
inline

Definition at line 843 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::ringbuffer_ptr ( size_type  nb,
const value_type val 
)
inline

Definition at line 855 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::~ringbuffer_ptr ( )
inline

Definition at line 861 of file fixedcapacitybase.hpp.

Member Function Documentation

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
value_type& pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::back ( ) const
inline

Definition at line 923 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::backn ( value_type dst,
int  nb 
) const
inline

Definition at line 962 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::clear ( )
inline

Definition at line 1048 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
bool pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::empty ( ) const
inline

Definition at line 905 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
template<class Body >
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::for_each ( const Body &  body) const
inline
Todo:
: comment on the signature of body

Definition at line 1067 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
template<class Body >
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::for_each_segment ( int  lo,
int  hi,
const Body &  body 
) const
inline
Todo:
: comment on the signature of body

Definition at line 1076 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
value_type& pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::front ( ) const
inline

Definition at line 918 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::frontn ( value_type dst,
int  nb 
) const
inline

Definition at line 956 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
bool pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::full ( ) const
inline

Definition at line 897 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
int pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::index_of_pointer ( const value_type p) const
inline

Definition at line 875 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
value_type& pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::operator[] ( int  i) const
inline

Definition at line 1040 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
value_type& pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::operator[] ( size_t  i) const
inline

Definition at line 1044 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
bool pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::partial ( ) const
inline

Definition at line 914 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
value_type* pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::pointer_of_index ( int  i) const
inline

Definition at line 868 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
value_type pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::pop_back ( )
inline

Definition at line 948 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
value_type pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::pop_front ( )
inline

Definition at line 940 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::popn_back ( int  nb)
inline

Definition at line 1001 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::popn_back ( value_type dst,
int  nb 
)
inline

Definition at line 1013 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::popn_front ( int  nb)
inline

Definition at line 994 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::popn_front ( value_type dst,
int  nb 
)
inline

Definition at line 1008 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::push_back ( const value_type x)
inline

Definition at line 934 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::push_front ( const value_type x)
inline

Definition at line 928 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::pushn_back ( const value_type src,
int  nb 
)
inline

Definition at line 978 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
template<class Body >
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::pushn_back ( const Body &  body,
int  nb 
)
inline
Todo:
: add a comment on the signature of body

Definition at line 987 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::pushn_front ( const value_type src,
int  nb 
)
inline

Definition at line 971 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
segment_type pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::segment_by_index ( int  i) const
inline

Definition at line 1058 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
int pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::size ( ) const
inline

Definition at line 887 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::swap ( ringbuffer_ptr< Array_alloc, Item_alloc > &  other)
inline

Definition at line 1052 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::transfer_from_back_to_front ( ringbuffer_ptr< Array_alloc, Item_alloc > &  target,
int  nb 
)
inline

Definition at line 1018 of file fixedcapacitybase.hpp.

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
void pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::transfer_from_front_to_back ( ringbuffer_ptr< Array_alloc, Item_alloc > &  target,
int  nb 
)
inline

Definition at line 1029 of file fixedcapacitybase.hpp.

Member Data Documentation

template<class Array_alloc, class Item_alloc = std::allocator<typename Array_alloc::value_type>>
constexpr int pasl::data::fixedcapacity::base::ringbuffer_ptr< Array_alloc, Item_alloc >::capacity = Array_alloc::capacity - 1
static

Definition at line 751 of file fixedcapacitybase.hpp.


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