17 #ifndef IOX_POSH_POPO_BUILDING_BLOCKS_CHUNK_QUEUE_PUSHER_HPP
18 #define IOX_POSH_POPO_BUILDING_BLOCKS_CHUNK_QUEUE_PUSHER_HPP
20 #include "iceoryx_posh/internal/mepoo/shared_chunk.hpp"
21 #include "iceoryx_posh/internal/popo/building_blocks/chunk_queue_data.hpp"
22 #include "iceoryx_posh/internal/popo/building_blocks/condition_notifier.hpp"
23 #include "iceoryx_utils/cxx/expected.hpp"
24 #include "iceoryx_utils/cxx/helplets.hpp"
34 template <
typename ChunkQueueDataType>
38 using MemberType_t = ChunkQueueDataType;
40 explicit ChunkQueuePusher(cxx::not_null<MemberType_t* const> chunkQueueDataPtr) noexcept;
57 const MemberType_t* getMembers()
const noexcept;
58 MemberType_t* getMembers() noexcept;
61 MemberType_t* m_chunkQueueDataPtr{
nullptr};
67 #include "iceoryx_posh/internal/popo/building_blocks/chunk_queue_pusher.inl"
WARNING: SharedChunk is not thread safe! Don't share SharedChunk objects between threads!...
Definition: shared_chunk.hpp:35
The ChunkQueuePusher is the low layer building block to push SharedChunks in a chunk queue....
Definition: chunk_queue_pusher.hpp:36
bool push(mepoo::SharedChunk chunk) noexcept
push a new chunk to the chunk queue
Definition: chunk_queue_pusher.inl:47
void lostAChunk() noexcept
tell the queue that it lost a chunk (e.g. because push failed and there will be no retry)
Definition: chunk_queue_pusher.inl:74
Definition: service_description.hpp:29