Class astutedds::dcps::DataWriter

ClassList > astutedds > dcps > DataWriter

Publishes data samples to a topic.

  • #include <dcps.hpp>

Public Types

Type Name
typedef std::function< void()> HeartbeatCallback
typedef std::function< void(const rtps::GUID_t &)> LivelinessAssertHook
typedef std::function< LivelinessLostStatus()> LivelinessLostStatusHook
typedef std::function< void(const std::vector< uint8_t > &data, const rtps::GUID_t &writer_guid, const rtps::SequenceNumber_t &sequence_number)> LocalDeliverCallback
typedef std::function< void(const std::vector< uint8_t > &)> SendCallback
typedef std::function< void(const std::vector< uint8_t > &, const std::vector< uint8_t > &)> SendDualCallback

Public Functions

Type Name
DataWriter (Topic * topic, Publisher * publisher)
DataWriter (const DataWriter &) = delete
void add_matched_reader (const rtps::GUID_t & reader_guid)
bool assert_liveliness ()
Explicitly assert liveliness on this writer (DDS §2.2.2.4.2.22). Required for MANUAL_BY_TOPIC writers when no write() is happening. A no-op for AUTOMATIC writers. Returns false if the writer has not been registered with the participant's liveliness manager (e.g. participant not enabled yet).
bool dispose (uint64_t handle)
Dispose a type instance.
DataWriterListener * get_listener () const
StatusMask get_listener_mask () const
LivelinessLostStatus get_liveliness_lost_status () const
Get liveliness-lost status (DDS §2.2.4.1.6). Only meaningful for MANUAL_BY_TOPIC / MANUAL_BY_PARTICIPANT writers — bumps each time the writer's lease expires without an assertion. total_count_change is reset on read.
OfferedDeadlineMissedStatus get_offered_deadline_missed_status ()
Get offered-deadline-missed status (DDS §2.2.4.1.7). Bumps every time the writer fails to publish within its DEADLINE QoS period. total_count_change reset on read.
void get_offered_incompatible_qos_status (OfferedIncompatibleQosStatus & out)
void get_publication_matched_status (PublicationMatchedStatus & out)
const DataWriterQos & get_qos () const
Topic * get_topic () const
const rtps::GUID_t & guid () const
const std::deque< CacheChange > & history_cache () const
void note_offered_incompatible_qos (QosPolicyId_t failed_policy_id)
void notify_write (InstanceHandle_t handle)
DataWriter & operator= (const DataWriter &) = delete
void process_acknack (const rtps::GUID_t & reader_guid, const std::set< uint32_t > & requested_sns, rtps::Count_t count)
Publisher * publisher () const
uint64_t register_instance ()
Register a type instance.
void remove_expired_samples ()
void remove_matched_reader (const rtps::GUID_t & reader_guid)
void set_deadline_timer_service (TimerService * ts)
void set_guid (const rtps::GUID_t & guid)
void set_heartbeat_callback (HeartbeatCallback callback)
void set_listener (DataWriterListener * listener, StatusMask mask=STATUS_MASK_ALL)
void set_liveliness_assert_hook (LivelinessAssertHook hook)
void set_liveliness_lost_hook (LivelinessLostStatusHook hook)
void set_local_deliver_callback (LocalDeliverCallback callback)
void set_qos (const DataWriterQos & qos)
void set_send_callback (SendCallback callback)
void set_send_dual_callback (SendDualCallback callback)
void start_deadline_timer ()
void stop_deadline_timer ()
Topic * topic () const
bool unregister_instance (uint64_t handle)
Unregister a type instance.
ReturnCode_t wait_for_acknowledgments (const Duration_t & max_wait)
Wait for acknowledgments from all matched readers.
bool write (const std::vector< uint8_t > & data)
Write a serialized data sample.
bool write (const std::vector< uint8_t > & xcdr1Data, const std::vector< uint8_t > & xcdr2Data)
Write dual-encoded data (XCDR1 + XCDR2)
virtual ~DataWriter () = default

Public Types Documentation

typedef HeartbeatCallback

using astutedds::dcps::DataWriter::HeartbeatCallback =  std::function<void()>;

typedef LivelinessAssertHook

using astutedds::dcps::DataWriter::LivelinessAssertHook =  std::function<void(const rtps::GUID_t&)>;

Hook installed by Publisher::create_datawriter — wires this writer's assert_liveliness() / write() to the participant's LivelinessManager. Not part of the public DDS API.


typedef LivelinessLostStatusHook

using astutedds::dcps::DataWriter::LivelinessLostStatusHook =  std::function<LivelinessLostStatus()>;

typedef LocalDeliverCallback

using astutedds::dcps::DataWriter::LocalDeliverCallback =  std::function<void(const std::vector<uint8_t> &data, const rtps::GUID_t &writer_guid, const rtps::SequenceNumber_t &sequence_number)>;

typedef SendCallback

using astutedds::dcps::DataWriter::SendCallback =  std::function<void(const std::vector<uint8_t> &)>;

typedef SendDualCallback

using astutedds::dcps::DataWriter::SendDualCallback =  std::function<void(const std::vector<uint8_t> &, const std::vector<uint8_t> &)>;

Public Functions Documentation

function DataWriter [1/2]

astutedds::dcps::DataWriter::DataWriter (
    Topic * topic,
    Publisher * publisher
) 

function DataWriter [2/2]

astutedds::dcps::DataWriter::DataWriter (
    const DataWriter &
) = delete

function add_matched_reader

void astutedds::dcps::DataWriter::add_matched_reader (
    const rtps::GUID_t & reader_guid
) 

function assert_liveliness

Explicitly assert liveliness on this writer (DDS §2.2.2.4.2.22). Required for MANUAL_BY_TOPIC writers when no write() is happening. A no-op for AUTOMATIC writers. Returns false if the writer has not been registered with the participant's liveliness manager (e.g. participant not enabled yet).

bool astutedds::dcps::DataWriter::assert_liveliness () 


function dispose

Dispose a type instance.

bool astutedds::dcps::DataWriter::dispose (
    uint64_t handle
) 


function get_listener

inline DataWriterListener * astutedds::dcps::DataWriter::get_listener () const

function get_listener_mask

inline StatusMask astutedds::dcps::DataWriter::get_listener_mask () const

function get_liveliness_lost_status

Get liveliness-lost status (DDS §2.2.4.1.6). Only meaningful for MANUAL_BY_TOPIC / MANUAL_BY_PARTICIPANT writers — bumps each time the writer's lease expires without an assertion. total_count_change is reset on read.

LivelinessLostStatus astutedds::dcps::DataWriter::get_liveliness_lost_status () const


function get_offered_deadline_missed_status

Get offered-deadline-missed status (DDS §2.2.4.1.7). Bumps every time the writer fails to publish within its DEADLINE QoS period. total_count_change reset on read.

OfferedDeadlineMissedStatus astutedds::dcps::DataWriter::get_offered_deadline_missed_status () 


function get_offered_incompatible_qos_status

void astutedds::dcps::DataWriter::get_offered_incompatible_qos_status (
    OfferedIncompatibleQosStatus & out
) 

function get_publication_matched_status

void astutedds::dcps::DataWriter::get_publication_matched_status (
    PublicationMatchedStatus & out
) 

function get_qos

inline const DataWriterQos & astutedds::dcps::DataWriter::get_qos () const

function get_topic

inline Topic * astutedds::dcps::DataWriter::get_topic () const

function guid

inline const rtps::GUID_t & astutedds::dcps::DataWriter::guid () const

function history_cache

inline const std::deque< CacheChange > & astutedds::dcps::DataWriter::history_cache () const

function note_offered_incompatible_qos

void astutedds::dcps::DataWriter::note_offered_incompatible_qos (
    QosPolicyId_t failed_policy_id
) 

Record that a remote DataReader was seen with QoS incompatible with this writer's offered QoS. Bumps the OfferedIncompatibleQosStatus counters and, if a listener is registered, delivers a copy of the updated status.


function notify_write

void astutedds::dcps::DataWriter::notify_write (
    InstanceHandle_t handle
) 

function operator=

DataWriter & astutedds::dcps::DataWriter::operator= (
    const DataWriter &
) = delete

function process_acknack

void astutedds::dcps::DataWriter::process_acknack (
    const rtps::GUID_t & reader_guid,
    const std::set< uint32_t > & requested_sns,
    rtps::Count_t count
) 

function publisher

inline Publisher * astutedds::dcps::DataWriter::publisher () const

function register_instance

Register a type instance.

uint64_t astutedds::dcps::DataWriter::register_instance () 

Returns:

Instance handle


function remove_expired_samples

void astutedds::dcps::DataWriter::remove_expired_samples () 

function remove_matched_reader

void astutedds::dcps::DataWriter::remove_matched_reader (
    const rtps::GUID_t & reader_guid
) 

function set_deadline_timer_service

inline void astutedds::dcps::DataWriter::set_deadline_timer_service (
    TimerService * ts
) 

§1.1b-B — hook installed by Publisher::create_datawriter to share the participant's TimerService. Null when no participant is attached (e.g. unit tests constructing DataWriter directly).


function set_guid

inline void astutedds::dcps::DataWriter::set_guid (
    const rtps::GUID_t & guid
) 

function set_heartbeat_callback

inline void astutedds::dcps::DataWriter::set_heartbeat_callback (
    HeartbeatCallback callback
) 

function set_listener

inline void astutedds::dcps::DataWriter::set_listener (
    DataWriterListener * listener,
    StatusMask mask=STATUS_MASK_ALL
) 

function set_liveliness_assert_hook

inline void astutedds::dcps::DataWriter::set_liveliness_assert_hook (
    LivelinessAssertHook hook
) 

function set_liveliness_lost_hook

inline void astutedds::dcps::DataWriter::set_liveliness_lost_hook (
    LivelinessLostStatusHook hook
) 

function set_local_deliver_callback

inline void astutedds::dcps::DataWriter::set_local_deliver_callback (
    LocalDeliverCallback callback
) 

function set_qos

void astutedds::dcps::DataWriter::set_qos (
    const DataWriterQos & qos
) 

function set_send_callback

inline void astutedds::dcps::DataWriter::set_send_callback (
    SendCallback callback
) 

function set_send_dual_callback

inline void astutedds::dcps::DataWriter::set_send_dual_callback (
    SendDualCallback callback
) 

function start_deadline_timer

void astutedds::dcps::DataWriter::start_deadline_timer () 

function stop_deadline_timer

void astutedds::dcps::DataWriter::stop_deadline_timer () 

function topic

inline Topic * astutedds::dcps::DataWriter::topic () const

function unregister_instance

Unregister a type instance.

bool astutedds::dcps::DataWriter::unregister_instance (
    uint64_t handle
) 


function wait_for_acknowledgments

Wait for acknowledgments from all matched readers.

inline ReturnCode_t astutedds::dcps::DataWriter::wait_for_acknowledgments (
    const Duration_t & max_wait
) 

Parameters:

  • max_wait Maximum time to wait

Returns:

RETCODE_OK or RETCODE_TIMEOUT


function write [1/2]

Write a serialized data sample.

bool astutedds::dcps::DataWriter::write (
    const std::vector< uint8_t > & data
) 

Parameters:

  • data Serialized data bytes

Returns:

true on success


function write [2/2]

Write dual-encoded data (XCDR1 + XCDR2)

bool astutedds::dcps::DataWriter::write (
    const std::vector< uint8_t > & xcdr1Data,
    const std::vector< uint8_t > & xcdr2Data
) 

Parameters:

  • xcdr1Data XCDR1 serialized data
  • xcdr2Data XCDR2 serialized data

Returns:

true on success


function ~DataWriter

virtual astutedds::dcps::DataWriter::~DataWriter () = default


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