Class astutedds::rtps::ShmRingBuffer
ClassList > astutedds > rtps > ShmRingBuffer
Lock-free ring buffer in shared memory.
#include <shm_transport.hpp>
Public Functions
| Type | Name |
|---|---|
| ShmRingBuffer (ShmSegment & segment, size_t slot_count) Create ring buffer in segment. |
|
| bool | has_data (uint32_t reader_id) const Check if messages are available. |
| bool | read (GuidPrefix_t & sender, std::vector< uint8_t > & data, uint32_t reader_id) Read next message from buffer (consumer) |
| size_t | slot_count () const Get slot count. |
| size_t | slot_size () const Get slot size. |
| bool | write (const GuidPrefix_t & sender, const std::vector< uint8_t > & data) Write message to buffer (producer) |
Public Functions Documentation
function ShmRingBuffer
Create ring buffer in segment.
astutedds::rtps::ShmRingBuffer::ShmRingBuffer (
ShmSegment & segment,
size_t slot_count
)
Parameters:
segmentShared memory segmentslot_countNumber of slots
function has_data
Check if messages are available.
bool astutedds::rtps::ShmRingBuffer::has_data (
uint32_t reader_id
) const
function read
Read next message from buffer (consumer)
bool astutedds::rtps::ShmRingBuffer::read (
GuidPrefix_t & sender,
std::vector< uint8_t > & data,
uint32_t reader_id
)
Parameters:
senderOutput: sender participant prefixdataOutput: message datareader_idUnique reader identifier
Returns:
true if message was read
function slot_count
Get slot count.
inline size_t astutedds::rtps::ShmRingBuffer::slot_count () const
function slot_size
Get slot size.
inline size_t astutedds::rtps::ShmRingBuffer::slot_size () const
function write
Write message to buffer (producer)
bool astutedds::rtps::ShmRingBuffer::write (
const GuidPrefix_t & sender,
const std::vector< uint8_t > & data
)
Parameters:
senderSender participant prefixdataMessage data
Returns:
true if message was written
The documentation for this class was generated from the following file include/astutedds/rtps/shm_transport.hpp