The Pedigree Project 0.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
RingQueue< T, preallocatedSize > Class Template Reference

#include <RingQueue.h>

+ Inheritance diagram for RingQueue< T, preallocatedSize >:
+ Collaboration diagram for RingQueue< T, preallocatedSize >:

Public Member Functions

 RingQueue (size_t capacity)
 
size_t count () const
 
size_t capacity () const
 
size_t push (const T *items, size_t count)
 
size_t pop (T *items, size_t count)
 

Private Member Functions

 NOT_COPYABLE_OR_ASSIGNABLE (RingQueue)
 

Private Attributes

const size_t m_Capacity
 
T m_Items [preallocatedSize] = {}
 
size_t m_Read = 0
 
size_t m_Write = 0
 
size_t m_Count = 0
 

Detailed Description

template<class T, size_t preallocatedSize = 0>
class RingQueue< T, preallocatedSize >

Bounded FIFO storage. The owner supplies synchronization and lifetime.

Definition at line 17 of file RingQueue.h.

Constructor & Destructor Documentation

◆ RingQueue()

template<class T , size_t preallocatedSize = 0>
RingQueue< T, preallocatedSize >::RingQueue ( size_t  capacity)
inlineexplicit

Definition at line 19 of file RingQueue.h.

Member Function Documentation

◆ capacity()

template<class T , size_t preallocatedSize = 0>
size_t RingQueue< T, preallocatedSize >::capacity ( ) const
inline

Definition at line 26 of file RingQueue.h.

◆ count()

template<class T , size_t preallocatedSize = 0>
size_t RingQueue< T, preallocatedSize >::count ( ) const
inline

Definition at line 23 of file RingQueue.h.

◆ pop()

template<class T , size_t preallocatedSize = 0>
size_t RingQueue< T, preallocatedSize >::pop ( T *  items,
size_t  count 
)
inline

Definition at line 44 of file RingQueue.h.

◆ push()

template<class T , size_t preallocatedSize = 0>
size_t RingQueue< T, preallocatedSize >::push ( const T *  items,
size_t  count 
)
inline

Definition at line 30 of file RingQueue.h.

Member Data Documentation

◆ m_Capacity

template<class T , size_t preallocatedSize = 0>
const size_t RingQueue< T, preallocatedSize >::m_Capacity
private

Definition at line 61 of file RingQueue.h.

◆ m_Count

template<class T , size_t preallocatedSize = 0>
size_t RingQueue< T, preallocatedSize >::m_Count = 0
private

Definition at line 65 of file RingQueue.h.

◆ m_Items

template<class T , size_t preallocatedSize = 0>
T RingQueue< T, preallocatedSize >::m_Items[preallocatedSize] = {}
private

Definition at line 62 of file RingQueue.h.

◆ m_Read

template<class T , size_t preallocatedSize = 0>
size_t RingQueue< T, preallocatedSize >::m_Read = 0
private

Definition at line 63 of file RingQueue.h.

◆ m_Write

template<class T , size_t preallocatedSize = 0>
size_t RingQueue< T, preallocatedSize >::m_Write = 0
private

Definition at line 64 of file RingQueue.h.


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