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:

  • segment Shared memory segment
  • slot_count Number 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:

  • sender Output: sender participant prefix
  • data Output: message data
  • reader_id Unique 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:

  • sender Sender participant prefix
  • data Message data

Returns:

true if message was written



The documentation for this class was generated from the following file include/astutedds/rtps/shm_transport.hpp