Embedded Template Library 1.0
Loading...
Searching...
No Matches
etl::queue_spsc_locked< T, SIZE, MEMORY_MODEL > Class Template Reference

#include <queue_spsc_locked.h>

Public Types

typedef base_t::size_type size_type
 
- Public Types inherited from etl::iqueue_spsc_locked< T, MEMORY_MODEL >
typedef T value_type
 The type stored in the queue.
 
typedef Treference
 A reference to the type used in the queue.
 
typedef const Tconst_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::iqueue_spsc_locked_base< MEMORY_MODEL >
typedef etl::size_type_lookup< MEMORY_MODEL >::type size_type
 The type used for determining the size of queue.
 

Public Member Functions

 ETL_STATIC_ASSERT ((SIZE<=etl::integral_limits< size_type >::max), "Size too large for memory model")
 
 queue_spsc_locked (const etl::ifunction< void > &lock_, const etl::ifunction< void > &unlock_)
 Default constructor.
 
 ~queue_spsc_locked ()
 Destructor.
 
- Public Member Functions inherited from etl::iqueue_spsc_locked< T, MEMORY_MODEL >
bool push_from_unlocked (const_reference value)
 Push a value to the queue.
 
bool push (const_reference value)
 Push a value to the queue.
 
template<typename T1 >
bool emplace_from_unlocked (const T1 &value1)
 
template<typename T1 , typename T2 >
bool emplace_from_unlocked (const T1 &value1, const T2 &value2)
 
template<typename T1 , typename T2 , typename T3 >
bool emplace_from_unlocked (const T1 &value1, const T2 &value2, const T3 &value3)
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
bool emplace_from_unlocked (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
 
bool emplace ()
 
template<typename T1 >
bool emplace (const T1 &value1)
 
template<typename T1 , typename T2 >
bool emplace (const T1 &value1, const T2 &value2)
 
template<typename T1 , typename T2 , typename T3 >
bool emplace (const T1 &value1, const T2 &value2, const T3 &value3)
 
template<typename T1 , typename T2 , typename T3 , typename T4 >
bool emplace (const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4)
 
bool pop_from_unlocked (reference value)
 
bool pop (reference value)
 Pop a value from the queue.
 
bool pop_from_unlocked ()
 
bool pop ()
 Pop a value from the queue and discard.
 
reference front_from_unlocked ()
 
const_reference front_from_unlocked () const
 
reference front ()
 Peek a value from the front of the queue.
 
const_reference front () const
 Peek a value from the front of the queue.
 
void clear_from_unlocked ()
 Clear the queue from the ISR.
 
void clear ()
 Clear the queue.
 
size_type available () const
 How much free space available in the queue.
 
bool full () const
 Is the queue full?
 
size_type size () const
 How many items in the queue?
 
bool empty () const
 Is the queue empty?
 
- Public Member Functions inherited from etl::iqueue_spsc_locked_base< MEMORY_MODEL >
size_type available_from_unlocked () const
 How much free space available in the queue.
 
bool full_from_unlocked () const
 Is the queue full?
 
size_type size_from_unlocked () const
 How many items in the queue?
 
bool empty_from_unlocked () const
 Is the queue empty?
 
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(SIZE)
 

Additional Inherited Members

- Protected Member Functions inherited from etl::iqueue_spsc_locked< T, MEMORY_MODEL >
 iqueue_spsc_locked (T *p_buffer_, size_type max_size_, const etl::ifunction< void > &lock_, const etl::ifunction< void > &unlock_)
 The constructor that is called from derived classes.
 
- Protected Member Functions inherited from etl::iqueue_spsc_locked_base< MEMORY_MODEL >
 iqueue_spsc_locked_base (size_type max_size_)
 
size_type available_implementation () const
 How much free space available in the queue.
 
bool full_implementation () const
 Is the queue full?
 
size_type size_implementation () const
 How many items in the queue?
 
bool empty_implementation () const
 Is the queue empty?
 
 ~iqueue_spsc_locked_base ()
 Destructor.
 
- Static Protected Member Functions inherited from etl::iqueue_spsc_locked_base< MEMORY_MODEL >
static size_type get_next_index (size_type index, size_type maximum)
 Calculate the next index.
 
- Protected Attributes inherited from etl::iqueue_spsc_locked_base< MEMORY_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 SIZE, const size_t MEMORY_MODEL = etl::memory_model::MEMORY_MODEL_LARGE>
class etl::queue_spsc_locked< T, SIZE, MEMORY_MODEL >

A fixed capacity spsc queue. This queue supports concurrent access by one producer and one consumer.

Template Parameters
TThe type this queue should support.
SIZEThe maximum capacity of the queue.
MEMORY_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: