Class astutedds::rtps::ReliabilityManagerWriter

ClassList > astutedds > rtps > ReliabilityManagerWriter

Manages reliability protocol for a DataWriter. More...

  • #include <reliability_manager.hpp>

Public Functions

Type Name
ReliabilityManagerWriter (const GUID_t & writer_guid, std::chrono::milliseconds heartbeat_period=std::chrono::milliseconds(200))
Constructor.
void add_reader (const GUID_t & reader_guid)
Add a matched reader.
std::vector< uint8_t > create_heartbeat (const EntityId_t & reader_id, const SequenceNumber_t & first_sn, const SequenceNumber_t & last_sn, bool final=false)
Create HEARTBEAT submessage data.
std::set< uint32_t > get_unacknowledged (const SequenceNumber_t & up_to_sn) const
Get unacknowledged sequence numbers.
std::set< uint32_t > process_acknack (const GUID_t & reader_guid, const std::set< uint32_t > & reader_sn_set, Count_t count)
Process an ACKNACK message from a reader.
void remove_reader (const GUID_t & reader_guid)
Remove a matched reader.
bool should_send_heartbeat (const SequenceNumber_t & first_sn, const SequenceNumber_t & last_sn)
Check if HEARTBEAT should be sent.

Detailed Description

Responsibilities: * Send periodic HEARTBEAT messages * Process ACKNACK messages * Track reader acknowledgments * Trigger retransmissions for unacknowledged samples

Public Functions Documentation

function ReliabilityManagerWriter

Constructor.

explicit astutedds::rtps::ReliabilityManagerWriter::ReliabilityManagerWriter (
    const GUID_t & writer_guid,
    std::chrono::milliseconds heartbeat_period=std::chrono::milliseconds(200)
) 

Parameters:

  • writer_guid GUID of the local writer
  • heartbeat_period Period between HEARTBEAT messages

function add_reader

Add a matched reader.

void astutedds::rtps::ReliabilityManagerWriter::add_reader (
    const GUID_t & reader_guid
) 

Parameters:

  • reader_guid GUID of the remote reader

function create_heartbeat

Create HEARTBEAT submessage data.

std::vector< uint8_t > astutedds::rtps::ReliabilityManagerWriter::create_heartbeat (
    const EntityId_t & reader_id,
    const SequenceNumber_t & first_sn,
    const SequenceNumber_t & last_sn,
    bool final=false
) 

Parameters:

  • reader_id Reader entity ID (or ENTITYID_UNKNOWN for all)
  • first_sn First available sequence number
  • last_sn Last available sequence number
  • final True if this is the final HEARTBEAT

Returns:

HEARTBEAT submessage data


function get_unacknowledged

Get unacknowledged sequence numbers.

std::set< uint32_t > astutedds::rtps::ReliabilityManagerWriter::get_unacknowledged (
    const SequenceNumber_t & up_to_sn
) const

Parameters:

  • up_to_sn Check up to this sequence number

Returns:

Set of unacknowledged sequence numbers


function process_acknack

Process an ACKNACK message from a reader.

std::set< uint32_t > astutedds::rtps::ReliabilityManagerWriter::process_acknack (
    const GUID_t & reader_guid,
    const std::set< uint32_t > & reader_sn_set,
    Count_t count
) 

Parameters:

  • reader_guid GUID of the reader
  • reader_sn_set Set of sequence numbers requested
  • count ACKNACK count

Returns:

Set of sequence numbers to retransmit


function remove_reader

Remove a matched reader.

void astutedds::rtps::ReliabilityManagerWriter::remove_reader (
    const GUID_t & reader_guid
) 

Parameters:

  • reader_guid GUID of the remote reader

function should_send_heartbeat

Check if HEARTBEAT should be sent.

bool astutedds::rtps::ReliabilityManagerWriter::should_send_heartbeat (
    const SequenceNumber_t & first_sn,
    const SequenceNumber_t & last_sn
) 

Parameters:

  • first_sn First available sequence number
  • last_sn Last available sequence number

Returns:

True if HEARTBEAT should be sent



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