iceoryx_doc  1.0.1
Public Types | Public Member Functions | Public Attributes | List of all members
iox::popo::ChunkDistributorData< ChunkDistributorDataProperties, LockingPolicy, ChunkQueuePusherType > Struct Template Reference
Inheritance diagram for iox::popo::ChunkDistributorData< ChunkDistributorDataProperties, LockingPolicy, ChunkQueuePusherType >:
Inheritance graph
[legend]
Collaboration diagram for iox::popo::ChunkDistributorData< ChunkDistributorDataProperties, LockingPolicy, ChunkQueuePusherType >:
Collaboration graph
[legend]

Public Types

using ThisType_t = ChunkDistributorData< ChunkDistributorDataProperties, LockingPolicy, ChunkQueuePusherType >
 
using LockGuard_t = std::lock_guard< const ThisType_t >
 
using ChunkQueuePusher_t = ChunkQueuePusherType
 
using ChunkQueueData_t = typename ChunkQueuePusherType::MemberType_t
 
using ChunkDistributorDataProperties_t = ChunkDistributorDataProperties
 
using QueueContainer_t = cxx::vector< rp::RelativePointer< ChunkQueueData_t >, ChunkDistributorDataProperties_t::MAX_QUEUES >
 
using HistoryContainer_t = cxx::vector< mepoo::ShmSafeUnmanagedChunk, ChunkDistributorDataProperties_t::MAX_HISTORY_CAPACITY >
 

Public Member Functions

 ChunkDistributorData (const SubscriberTooSlowPolicy policy, const uint64_t historyCapacity=0u) noexcept
 

Public Attributes

const uint64_t m_historyCapacity
 
QueueContainer_t m_queues
 
HistoryContainer_t m_history
 
const SubscriberTooSlowPolicy m_subscriberTooSlowPolicy
 

Member Typedef Documentation

◆ HistoryContainer_t

template<typename ChunkDistributorDataProperties , typename LockingPolicy , typename ChunkQueuePusherType >
using iox::popo::ChunkDistributorData< ChunkDistributorDataProperties, LockingPolicy, ChunkQueuePusherType >::HistoryContainer_t = cxx::vector<mepoo::ShmSafeUnmanagedChunk, ChunkDistributorDataProperties_t::MAX_HISTORY_CAPACITY>
Todo:
If we would make the ChunkDistributor lock-free, can we than extend the UsedChunkList to be like a ring buffer and use this for the history? This would be needed to be able to safely cleanup. Using ShmSafeUnmanagedChunk since RouDi must access this list to cleanup the chunks in case of an application crash.

The documentation for this struct was generated from the following files: