Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::CircularQueue< T, INTSIZE > Class Template Reference

#include <circ_queue.h>

Public Types

typedef T ITEMTYPE
 
typedef CircularQueueIterator< T, INTSIZE > iterator
 
typedef CircularQueueIterator< T const, INTSIZE > const_iterator
 

Public Member Functions

 CircularQueue (size_t init_capacity=0, int _growth_factor=-2)
 
 ~CircularQueue (void)
 
bool empty (void) const
 
size_t size (void) const
 
size_t capacity (void) const
 
void reserve (size_t new_capacity)
 
void clear (void)
 
T & front (void)
 
const T & front (void) const
 
void push_front (const T &val)
 
void pop_front (void)
 
T & back (void)
 
const T & back (void) const
 
void push_back (const T &val)
 
void pop_back (void)
 
void swap (CircularQueue< T, INTSIZE > &swap_with)
 
template<unsigned INTSIZE2>
void swap (CircularQueue< T, INTSIZE2 > &swap_with)
 
iterator begin (void)
 
iterator end (void)
 
const_iterator begin (void) const
 
const_iterator end (void) const
 

Static Public Attributes

static const size_t ITEMSIZE = sizeof(T)
 

Protected Member Functions

T * item_ptr (char *base, size_t idx) const
 
const T * item_ptr (const char *base, size_t idx) const
 

Protected Attributes

char internal_buffer [ITEMSIZE *INTSIZE]
 
char * external_buffer
 
size_t current_size
 
size_t max_size
 
size_t head
 
size_t tail
 
int growth_factor
 

Friends

class CircularQueueIterator< T, INTSIZE >
 

Member Typedef Documentation

◆ const_iterator

template<typename T , unsigned INTSIZE = 4>
typedef CircularQueueIterator<T const, INTSIZE> Realm::CircularQueue< T, INTSIZE >::const_iterator

◆ ITEMTYPE

template<typename T , unsigned INTSIZE = 4>
typedef T Realm::CircularQueue< T, INTSIZE >::ITEMTYPE

◆ iterator

template<typename T , unsigned INTSIZE = 4>
typedef CircularQueueIterator<T, INTSIZE> Realm::CircularQueue< T, INTSIZE >::iterator

Constructor & Destructor Documentation

◆ CircularQueue()

template<typename T , unsigned INTSIZE = 4>
Realm::CircularQueue< T, INTSIZE >::CircularQueue ( size_t  init_capacity = 0,
int  _growth_factor = -2 
)

◆ ~CircularQueue()

template<typename T , unsigned INTSIZE = 4>
Realm::CircularQueue< T, INTSIZE >::~CircularQueue ( void  )

Member Function Documentation

◆ back() [1/2]

template<typename T , unsigned INTSIZE = 4>
T & Realm::CircularQueue< T, INTSIZE >::back ( void  )

◆ back() [2/2]

template<typename T , unsigned INTSIZE = 4>
const T & Realm::CircularQueue< T, INTSIZE >::back ( void  ) const

◆ begin() [1/2]

template<typename T , unsigned INTSIZE = 4>
iterator Realm::CircularQueue< T, INTSIZE >::begin ( void  )

◆ begin() [2/2]

template<typename T , unsigned INTSIZE = 4>
const_iterator Realm::CircularQueue< T, INTSIZE >::begin ( void  ) const

◆ capacity()

template<typename T , unsigned INTSIZE = 4>
size_t Realm::CircularQueue< T, INTSIZE >::capacity ( void  ) const

◆ clear()

template<typename T , unsigned INTSIZE = 4>
void Realm::CircularQueue< T, INTSIZE >::clear ( void  )

◆ empty()

template<typename T , unsigned INTSIZE = 4>
bool Realm::CircularQueue< T, INTSIZE >::empty ( void  ) const

◆ end() [1/2]

template<typename T , unsigned INTSIZE = 4>
iterator Realm::CircularQueue< T, INTSIZE >::end ( void  )

◆ end() [2/2]

template<typename T , unsigned INTSIZE = 4>
const_iterator Realm::CircularQueue< T, INTSIZE >::end ( void  ) const

◆ front() [1/2]

template<typename T , unsigned INTSIZE = 4>
T & Realm::CircularQueue< T, INTSIZE >::front ( void  )

◆ front() [2/2]

template<typename T , unsigned INTSIZE = 4>
const T & Realm::CircularQueue< T, INTSIZE >::front ( void  ) const

◆ item_ptr() [1/2]

template<typename T , unsigned INTSIZE = 4>
T * Realm::CircularQueue< T, INTSIZE >::item_ptr ( char *  base,
size_t  idx 
) const
protected

◆ item_ptr() [2/2]

template<typename T , unsigned INTSIZE = 4>
const T * Realm::CircularQueue< T, INTSIZE >::item_ptr ( const char *  base,
size_t  idx 
) const
protected

◆ pop_back()

template<typename T , unsigned INTSIZE = 4>
void Realm::CircularQueue< T, INTSIZE >::pop_back ( void  )

◆ pop_front()

template<typename T , unsigned INTSIZE = 4>
void Realm::CircularQueue< T, INTSIZE >::pop_front ( void  )

◆ push_back()

template<typename T , unsigned INTSIZE = 4>
void Realm::CircularQueue< T, INTSIZE >::push_back ( const T &  val)

◆ push_front()

template<typename T , unsigned INTSIZE = 4>
void Realm::CircularQueue< T, INTSIZE >::push_front ( const T &  val)

◆ reserve()

template<typename T , unsigned INTSIZE = 4>
void Realm::CircularQueue< T, INTSIZE >::reserve ( size_t  new_capacity)

◆ size()

template<typename T , unsigned INTSIZE = 4>
size_t Realm::CircularQueue< T, INTSIZE >::size ( void  ) const

◆ swap() [1/2]

template<typename T , unsigned INTSIZE = 4>
void Realm::CircularQueue< T, INTSIZE >::swap ( CircularQueue< T, INTSIZE > &  swap_with)

◆ swap() [2/2]

template<typename T , unsigned INTSIZE = 4>
template<unsigned INTSIZE2>
void Realm::CircularQueue< T, INTSIZE >::swap ( CircularQueue< T, INTSIZE2 > &  swap_with)

Friends And Related Symbol Documentation

◆ CircularQueueIterator< T, INTSIZE >

template<typename T , unsigned INTSIZE = 4>
friend class CircularQueueIterator< T, INTSIZE >
friend

Member Data Documentation

◆ current_size

template<typename T , unsigned INTSIZE = 4>
size_t Realm::CircularQueue< T, INTSIZE >::current_size
protected

◆ external_buffer

template<typename T , unsigned INTSIZE = 4>
char* Realm::CircularQueue< T, INTSIZE >::external_buffer
protected

◆ growth_factor

template<typename T , unsigned INTSIZE = 4>
int Realm::CircularQueue< T, INTSIZE >::growth_factor
protected

◆ head

template<typename T , unsigned INTSIZE = 4>
size_t Realm::CircularQueue< T, INTSIZE >::head
protected

◆ internal_buffer

template<typename T , unsigned INTSIZE = 4>
char Realm::CircularQueue< T, INTSIZE >::internal_buffer[ITEMSIZE *INTSIZE]
protected

◆ ITEMSIZE

template<typename T , unsigned INTSIZE = 4>
const size_t Realm::CircularQueue< T, INTSIZE >::ITEMSIZE = sizeof(T)
static

◆ max_size

template<typename T , unsigned INTSIZE = 4>
size_t Realm::CircularQueue< T, INTSIZE >::max_size
protected

◆ tail

template<typename T , unsigned INTSIZE = 4>
size_t Realm::CircularQueue< T, INTSIZE >::tail
protected

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