Embedded Template Library 1.0
Loading...
Searching...
No Matches
etl::queue_lockable< T, VSize, VMemory_Model > Class Template Reference

#include <queue_lockable.h>

Public Types

typedef base_t::size_type size_type
Public Types inherited from etl::iqueue_lockable< T, etl::memory_model::MEMORY_MODEL_LARGE >
typedef T value_type
 The type stored in the queue.
typedef T & reference
 A reference to the type used in the queue.
typedef const T & const_reference
 A const reference to the type used in the queue.
typedef base_t::size_type size_type
 The type used for determining the size of the queue.
Public Types inherited from etl::queue_lockable_base< VMemory_Model >
typedef etl::size_type_lookup< VMemory_Model >::type size_type
 The type used for determining the size of queue.

Public Member Functions

 ETL_STATIC_ASSERT ((VSize<=etl::integral_limits< size_type >::max), "Size too large for memory model")
 queue_lockable ()
 Default constructor.
 ~queue_lockable ()
 Destructor.
Public Member Functions inherited from etl::iqueue_lockable< T, etl::memory_model::MEMORY_MODEL_LARGE >
bool push_unlocked (const_reference value)
 Push a value to the queue without locking.
bool push (const_reference value)
 Push a value to the queue.
bool emplace_unlocked (const T1 &value1)
 Constructs a value in the queue 'in place'.
bool emplace ()
 Constructs a value in the queue 'in place'.
bool pop_unlocked ()
 Pop a value from the queue without locking, and discard.
bool pop ()
 Pop a value from the queue and discard.
reference front_unlocked ()
 Peek a value at the front of the queue without locking.
reference front ()
 Peek a value at the front of the queue.
void clear_unlocked ()
 Clear the queue, unlocked.
void clear ()
 Clear the queue.
Public Member Functions inherited from etl::queue_lockable_base< VMemory_Model >
virtual ~queue_lockable_base ()
 Destructor.
size_type available_unlocked () const
size_type available () const
 How much free space available in the queue.
bool empty_unlocked () const
bool empty () const
 Is the queue empty?
bool full_unlocked () const
bool full () const
 Is the queue full?
size_type size_unlocked () const
size_type size () const
 How many items in the queue?
size_type capacity () const
 How many items can the queue hold.
size_type max_size () const
 How many items can the queue hold.

Static Public Attributes

static ETL_CONSTANT size_type Max_Size = size_type(VSize)
static ETL_CONSTANT size_type Memory_Model = size_type(VMemory_Model)

Additional Inherited Members

Protected Member Functions inherited from etl::iqueue_lockable< T, etl::memory_model::MEMORY_MODEL_LARGE >
 iqueue_lockable (T *p_buffer_, size_type max_size_)
 The constructor that is called from derived classes.
Protected Member Functions inherited from etl::queue_lockable_base< VMemory_Model >
 queue_lockable_base (size_type max_size_)
virtual void lock () const=0
 The pure virtual lock and unlock functions.
virtual void unlock () const=0
Static Protected Member Functions inherited from etl::queue_lockable_base< VMemory_Model >
static size_type get_next_index (size_type index, size_type maximum)
 Calculate the next index.
Protected Attributes inherited from etl::queue_lockable_base< VMemory_Model >
size_type write_index
 Where to input new data.
size_type read_index
 Where to get the oldest data.
size_type current_size
 The current size of the queue.
const size_type Max_Size
 The maximum number of items in the queue.

Detailed Description

template<typename T, size_t VSize, size_t VMemory_Model = etl::memory_model::MEMORY_MODEL_LARGE>
class etl::queue_lockable< T, VSize, VMemory_Model >

A fixed capacity lockable queue. This queue supports concurrent access.

Template Parameters
TThe type this queue should support.
VSizeThe maximum capacity of the queue.
VMemory_ModelThe memory model for the queue. Determines the type of the internal counter variables.

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