Grok 20.3.2
grk::LimitedQueue< T > Class Template Reference

Queue limited to maximum size. More...

#include <PacketParser.h>

Public Member Functions

 LimitedQueue (std::size_t maxSize)
 Constructs a LimitedQueue.
 ~LimitedQueue ()=default
 Destroys a LimitedQueue.
bool push (T *ptr)
 Pushes an element into the queue.
std::optional< T * > pop ()
 Pops an element from the queue.

Private Attributes

std::unique_ptr< T *[]> elements
 array of queue elements
size_t currentSize
 current size of queue
std::size_t maxSize
 maximum size of queue
std::atomic< int32_t > popIndex
 pop index

Detailed Description

template<typename T>
class grk::LimitedQueue< T >

Queue limited to maximum size.

Template Parameters
typeof element in queue

Constructor & Destructor Documentation

◆ LimitedQueue()

template<typename T>
grk::LimitedQueue< T >::LimitedQueue ( std::size_t maxSize)
inline

Constructs a LimitedQueue.

Parameters
maxSizemaximum size of queue

References currentSize, elements, maxSize, and popIndex.

◆ ~LimitedQueue()

template<typename T>
grk::LimitedQueue< T >::~LimitedQueue ( )
default

Destroys a LimitedQueue.

Member Function Documentation

◆ pop()

template<typename T>
std::optional< T * > grk::LimitedQueue< T >::pop ( )
inline

Pops an element from the queue.

There may be no element to pop

Returns
std::optional<T>

References currentSize, elements, and popIndex.

◆ push()

template<typename T>
bool grk::LimitedQueue< T >::push ( T * ptr)
inline

Pushes an element into the queue.

Parameters
ptrpointer to push into queue
Returns
true if successful

References currentSize, elements, and maxSize.

Member Data Documentation

◆ currentSize

template<typename T>
size_t grk::LimitedQueue< T >::currentSize
private

current size of queue

Referenced by LimitedQueue(), pop(), and push().

◆ elements

template<typename T>
std::unique_ptr<T*[]> grk::LimitedQueue< T >::elements
private

array of queue elements

Referenced by LimitedQueue(), pop(), and push().

◆ maxSize

template<typename T>
std::size_t grk::LimitedQueue< T >::maxSize
private

maximum size of queue

Referenced by LimitedQueue(), and push().

◆ popIndex

template<typename T>
std::atomic<int32_t> grk::LimitedQueue< T >::popIndex
private

pop index

Referenced by LimitedQueue(), and pop().


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