iox::concurrent🔗
Classes🔗
Name | |
---|---|
class | iox::concurrent::ActiveObject |
class | iox::concurrent::Buffer |
class | iox::concurrent::CyclicIndex index structure that can contain logical values 0, ..., CycleLength-1 but also stores an internal cycle counter to be used in compare_exchange |
class | iox::concurrent::FiFo single pusher single pop'er thread safe fifo |
class | iox::concurrent::IndexQueue lockfree queue capable of storing indices 0,1,... Capacity-1 |
class | iox::concurrent::LockFreeQueue implements a lock free queue (i.e. container with FIFO order) of elements of type T with a fixed Capacity |
class | iox::concurrent::LoFFLi |
class | iox::concurrent::PeriodicTask This class periodically executes a callable specified by the template parameter. This can be a struct with a operator()() overload, a [cxx::function_ref]()<void()> or std::fuction<void()> . |
struct | iox::concurrent::PeriodicTaskAutoStart_t This is a helper struct to make the immediate start of the task in the PeriodicTask ctor obvious to the user. |
struct | iox::concurrent::PeriodicTaskManualStart_t This is a helper struct to make the manual start of the task with the start method obvious to the user. |
struct | iox::concurrent::QueueAdapter |
struct | iox::concurrent::QueueAdapter< T, Capacity, LockFreeQueue > |
struct | iox::concurrent::QueueAdapter< T, Capacity, ResizeableLockFreeQueue > |
class | iox::concurrent::ResizeableLockFreeQueue implements a lock free queue (i.e. container with FIFO order) of elements of type T with a maximum capacity MaxCapacity. The capacity can be defined to be anything between 0 and MaxCapacity at construction time or later at runtime using setCapacity. This is even possible while concurrent push and pop operations are executed, i.e. the queue does not have to be empty. Only one thread will succeed setting its desired capacity if there are more threads trying to change the capacity at the same time (it is unpredictable which thread). |
class | iox::concurrent::SoFi Thread safe producer and consumer queue with a safe overflowing behavior. SoFi is designed in a FIFO Manner but prevents data loss when pushing into a full SoFi. When SoFi is full and a Sender tries to push, the data at the current read position will be returned. SoFi is a Thread safe without using locks. When the buffer is filled, new data is written starting at the beginning of the buffer and overwriting the old.The SoFi is especially designed to provide fixed capacity storage. When its capacity is exhausted, newly inserted elements will cause elements either at the beginning to be overwritten.The SoFi only allocates memory when created , capacity can be is adjusted explicitly. |
class | iox::concurrent::TACO TACO is an acronym for Thread Aware exChange Ownership. Exchanging data between thread needs some synchonization mechanism. This can be done with a mutex or atomics. If the data structure is larger than 64 bit or if more than one value need to be accessed in a synchronized manner, a mutex would be the only option. The TACO is a wait-free alternative to the mutex. Data can be exchanged between threads. The TACO is like a SoFi with one element, but with the possibility to read/write from multiple threads. |
class | iox::concurrent::TriggerQueue TriggerQueue is behaves exactly like a normal queue (fifo) except that this queue is threadsafe and offers a blocking push which blocks the the caller until the queue has space for at least one element which can be pushed. |
Types🔗
Name | |
---|---|
enum | TACOMode { AccecptDataFromSameContext, DenyDataFromSameContext } Defines how the TACO works with data reads from the same context. |
Functions🔗
Name | |
---|---|
template \<typename T ,typename MutexType ,typename... Targs> smart_lock< T, MutexType > |
make_smart_lock(Targs &&... args) |
Attributes🔗
Name | |
---|---|
constexpr PeriodicTaskAutoStart_t | PeriodicTaskAutoStart |
constexpr PeriodicTaskManualStart_t | PeriodicTaskManualStart |
Types Documentation🔗
enum TACOMode🔗
Enumerator | Value | Description |
---|---|---|
AccecptDataFromSameContext | Accept data reads from the same context as data write. | |
DenyDataFromSameContext | Deny data reads from the same context as data write. |
Defines how the TACO works with data reads from the same context.
Functions Documentation🔗
function make_smart_lock🔗
template <typename T ,
typename MutexType ,
typename... Targs>
smart_lock< T, MutexType > make_smart_lock(
Targs &&... args
)
Attributes Documentation🔗
variable PeriodicTaskAutoStart🔗
static constexpr PeriodicTaskAutoStart_t PeriodicTaskAutoStart;
variable PeriodicTaskManualStart🔗
static constexpr PeriodicTaskManualStart_t PeriodicTaskManualStart;
Updated on 31 May 2022 at 15:29:15 CEST