42     bool empty(
void) 
const;
 
   49     void push(
const T &elem, 
const size_t index);
 
   54     const T &
front(
void) 
const;
 
   71     std::vector<T> _pushedElems;
 
   72     std::vector<bool> _pushedElemsFlag;
 
   86     _pushedElems(capacity),
 
   87     _pushedElemsFlag(capacity, false),
 
   96     return _readyElems.empty();
 
  103     assert(index < _pushedElems.size());
 
  104     _pushedElems[index] = elem;
 
  105     _pushedElemsFlag[index] = 
true;
 
  108     while (_pushedElemsFlag[_indexToAck])
 
  111         assert(not _readyElems.full());
 
  112         _readyElems.push_back(_pushedElems[_indexToAck]);
 
  113         _pushedElems[_indexToAck] = T(); 
 
  114         _pushedElemsFlag[_indexToAck] = 
false;
 
  117         if (++_indexToAck == _pushedElems.size()) _indexToAck = 0;
 
  121 template <
typename T>
 
  124     return _readyElems.front();
 
  127 template <
typename T>
 
  130     return _readyElems.front();
 
  133 template <
typename T>
 
  136     _readyElems.pop_front();
 
  139 template <
typename T>
 
  142     return _readyElems.capacity();
 
const T & front(void) const 
Definition: OrderedQueue.hpp:122
 
void push(const T &elem, const size_t index)
Definition: OrderedQueue.hpp:100
 
size_t capacity(void) const 
How many elements can be stored? 
Definition: OrderedQueue.hpp:140
 
bool empty(void) const 
Definition: OrderedQueue.hpp:94
 
Definition: RingDeque.hpp:28
 
void pop(void)
Definition: OrderedQueue.hpp:134
 
Definition: OrderedQueue.hpp:28
 
OrderedQueue(void)
Construct a size-zero ordered queue. 
Definition: OrderedQueue.hpp:77