Class astutedds::dcps::DataReader

ClassList > astutedds > dcps > DataReader

Subscribes to data samples from a topic.

  • #include <dcps.hpp>

Inherited by the following classes: astutedds::xtypes::builtin::BuiltinDataReader

Classes

Type Name
class Selector

Public Types

Type Name
typedef std::function< void(const ReceivedSample &)> DataCallback
typedef std::function< void()> DestroyCallback
typedef std::function< LivelinessChangedStatus()> LivelinessChangedStatusHook
typedef std::function< void()> NotifyCallback

Public Functions

Type Name
DataReader (Topic * topic, Subscriber * subscriber)
DataReader (const DataReader &) = delete
void add_destroy_callback (DestroyCallback cb)
void add_matched_writer (const rtps::GUID_t & writer_guid)
void add_notify_callback (NotifyCallback cb)
void add_sample (const ReceivedSample & sample)
Add a received sample to the cache.
uint64_t autopurged_instances_count () const
Phase 2.11.e — DDS §2.2.3.19 READER_DATA_LIFECYCLE diagnostic.
void bump_sample_lost (int32_t count=1)
ReadCondition * create_readcondition (SampleStateMask sample_states, ViewStateMask view_states, InstanceStateMask instance_states)
ReturnCode_t delete_contained_entities ()
ReturnCode_t delete_readcondition (ReadCondition * condition)
ReturnCode_t enable () noexcept
EntityStatusCondition * get_entity_statuscondition () noexcept
InstanceHandle_t get_instance_handle () noexcept const
ReturnCode_t get_key_value (std::vector< uint8_t > & key_holder, InstanceHandle_t handle)
Get the key value for an instance.
DataReaderListener * get_listener () const
LivelinessChangedStatus get_liveliness_changed_status () const
Get liveliness-changed status (DDS §2.2.4.1.4). Tracks the count of matched remote writers whose liveliness is currently asserted (alive_count) vs expired (not_alive_count). The *_change deltas are reset on read.
ReturnCode_t get_matched_publication_data (PublicationBuiltinTopicData & data, InstanceHandle_t handle) const
ReturnCode_t get_matched_publications (std::vector< InstanceHandle_t > & handles) const
const DataReaderQos & get_qos () const
RequestedDeadlineMissedStatus get_requested_deadline_missed_status ()
Get requested-deadline-missed status (DDS §2.2.4.1.5). Bumps every time no matching sample arrives within the DEADLINE QoS period. total_count_change reset on read.
void get_requested_incompatible_qos_status (RequestedIncompatibleQosStatus & out)
SampleLostStatus get_sample_lost_status ()
Get sample-lost status (DDS §2.2.4.1.7). Bumps once per sample that will never be delivered to the reader — currently signalled from the KEEP_LAST overflow path in DataReader::add_sample() .total_count_change resets on read.
SampleRejectedStatus get_sample_rejected_status ()
Get sample-rejected status (DDS §2.2.4.1.8 / §2.2.2.5.3.25). Bumped from DataReader::add_sample when the reader's cache is at RESOURCE_LIMITS.max_samples and the incoming sample cannot be admitted (REJECTED_BY_SAMPLES_LIMIT).last_reason andlast_instance_handle reflect the most recent rejection;total_count_change resets on each call.
StatusMask get_status_changes () noexcept const
void get_subscription_matched_status (SubscriptionMatchedStatus & out)
TopicDescription * get_topicdescription () const
const rtps::GUID_t & guid () const
bool is_enabled () noexcept const
bool is_writer_matched (const rtps::GUID_t & writer_guid) const
uint64_t latency_budget_exceeded_count () const
Phase 2.11.c — DDS §2.2.3.9 LATENCY_BUDGET diagnostic.
InstanceHandle_t lookup_instance (const std::vector< uint8_t > & key_holder) const
void note_requested_incompatible_qos (QosPolicyId_t failed_policy_id)
void notify_receive (InstanceHandle_t handle)
DataReader & operator= (const DataReader &) = delete
void process_heartbeat (const rtps::GUID_t & writer_guid, const rtps::SequenceNumber_t & first_sn, const rtps::SequenceNumber_t & last_sn, rtps::Count_t count, bool final)
std::vector< ReceivedSample > read (size_t max_samples=0xFFFFFFFF)
Read samples (keeps samples in cache)
ReturnCode_t read (std::vector< std::vector< uint8_t > > & data_values, std::vector< SampleInfo > & sample_infos, int32_t max_samples=-1, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
std::vector< ReceivedSample > read (size_t max_samples, SampleStateMask sample_states, ViewStateMask view_states, InstanceStateMask instance_states)
std::vector< ReceivedSample > read_instance (InstanceHandle_t a_handle, size_t max_samples=0xFFFFFFFF, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
std::vector< ReceivedSample > read_instance_w_condition (InstanceHandle_t a_handle, ReadCondition * condition, size_t max_samples=0xFFFFFFFF)
std::vector< ReceivedSample > read_next_instance (InstanceHandle_t previous_handle, size_t max_samples=0xFFFFFFFF, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
std::vector< ReceivedSample > read_next_instance_w_condition (InstanceHandle_t previous_handle, ReadCondition * condition, size_t max_samples=0xFFFFFFFF)
ReturnCode_t read_next_sample (std::vector< uint8_t > & data, SampleInfo & info)
Read the next sample from the reader.
std::vector< ReceivedSample > read_w_condition (ReadCondition * condition, size_t max_samples=0xFFFFFFFF)
§2.2.2.5.3.6 — read filtered by condition's mask triplet.
void remove_matched_writer (const rtps::GUID_t & writer_guid)
ReturnCode_t return_loan (std::vector< std::vector< uint8_t > > & data_values, std::vector< SampleInfo > & sample_infos)
Return a loaned sequence pair granted by a prior read/take.
size_t run_autopurge_sweep ()
Phase 2.11.e — DDS §2.2.3.19 test / diagnostic helper.
Selector select () noexcept
§7.13.2 — build a fluent selector for a subsequent read/take.
void set_acknack_callback (AcknackCallback cb)
void set_data_callback (DataCallback callback)
void set_deadline_timer_service (TimerService * ts)
void set_guid (const rtps::GUID_t & guid)
void set_listener (DataReaderListener * listener)
void set_liveliness_changed_hook (LivelinessChangedStatusHook hook)
void set_qos (const DataReaderQos & qos)
void set_topicdescription (TopicDescription * td)
void start_deadline_timer ()
void stop_deadline_timer ()
Subscriber * subscriber () const
std::vector< ReceivedSample > take (size_t max_samples=0xFFFFFFFF)
Take samples (removes samples from cache)
ReturnCode_t take (std::vector< std::vector< uint8_t > > & data_values, std::vector< SampleInfo > & sample_infos, int32_t max_samples=-1, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
std::vector< ReceivedSample > take (size_t max_samples, SampleStateMask sample_states, ViewStateMask view_states, InstanceStateMask instance_states)
std::vector< ReceivedSample > take_instance (InstanceHandle_t a_handle, size_t max_samples=0xFFFFFFFF, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
§2.2.2.5.3.9 — take all samples belonging to a_handle .
std::vector< ReceivedSample > take_instance_w_condition (InstanceHandle_t a_handle, ReadCondition * condition, size_t max_samples=0xFFFFFFFF)
std::vector< ReceivedSample > take_next_instance (InstanceHandle_t previous_handle, size_t max_samples=0xFFFFFFFF, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
std::vector< ReceivedSample > take_next_instance_w_condition (InstanceHandle_t previous_handle, ReadCondition * condition, size_t max_samples=0xFFFFFFFF)
ReturnCode_t take_next_sample (std::vector< uint8_t > & data, SampleInfo & info)
Take the next sample from the reader (removes from cache)
std::vector< ReceivedSample > take_w_condition (ReadCondition * condition, size_t max_samples=0xFFFFFFFF)
§2.2.2.5.3.7 — take filtered by condition's mask triplet.
Topic * topic () const
size_t unread_count () const
ReturnCode_t wait_for_historical_data (const Duration_t & max_wait)
virtual ~DataReader ()

Protected Attributes

Type Name
TopicDescription * topicdescription_ = {nullptr}

Public Types Documentation

typedef DataCallback

using astutedds::dcps::DataReader::DataCallback =  std::function<void(const ReceivedSample &)>;

typedef DestroyCallback

using astutedds::dcps::DataReader::DestroyCallback =  std::function<void()>;

typedef LivelinessChangedStatusHook

using astutedds::dcps::DataReader::LivelinessChangedStatusHook =  std::function<LivelinessChangedStatus()>;

Hook installed by Subscriber::create_datareader — reads the changed-status snapshot from the participant's LivelinessManager.


typedef NotifyCallback

using astutedds::dcps::DataReader::NotifyCallback =  std::function<void()>;

Public Functions Documentation

function DataReader [1/2]

astutedds::dcps::DataReader::DataReader (
    Topic * topic,
    Subscriber * subscriber
) 

function DataReader [2/2]

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

function add_destroy_callback

inline void astutedds::dcps::DataReader::add_destroy_callback (
    DestroyCallback cb
) 

function add_matched_writer

void astutedds::dcps::DataReader::add_matched_writer (
    const rtps::GUID_t & writer_guid
) 

function add_notify_callback

inline void astutedds::dcps::DataReader::add_notify_callback (
    NotifyCallback cb
) 

function add_sample

Add a received sample to the cache.

void astutedds::dcps::DataReader::add_sample (
    const ReceivedSample & sample
) 


function autopurged_instances_count

Phase 2.11.e — DDS §2.2.3.19 READER_DATA_LIFECYCLE diagnostic.

uint64_t astutedds::dcps::DataReader::autopurged_instances_count () const

Returns the number of instances the middleware has purged from this reader after qos.reader_data_lifecycle.autopurge_disposed_samples_delay (for DISPOSED instances) or qos.reader_data_lifecycle.autopurge_nowriter_samples_delay (for NO_WRITERS instances) elapsed since the state transition. Both delays default to INFINITE (no autopurge); leaving the defaults keeps the counter permanently zero. Monotonic across the reader's lifetime.


function bump_sample_lost

void astutedds::dcps::DataReader::bump_sample_lost (
    int32_t count=1
) 

§1.1b-B — bump the sample-lost counter from an internal caller (transport GAP handler, KEEP_LAST overflow). Dispatches the reader listener (falling back to the participant listener) with a drained snapshot.


function create_readcondition

ReadCondition * astutedds::dcps::DataReader::create_readcondition (
    SampleStateMask sample_states,
    ViewStateMask view_states,
    InstanceStateMask instance_states
) 

§2.2.2.5.2.1 — create a ReadCondition owned by this reader. The returned pointer is valid until the reader is destroyed or delete_readcondition() / delete_contained_entities() is called. Returns nullptr if the reader has not been enabled.


function delete_contained_entities

ReturnCode_t astutedds::dcps::DataReader::delete_contained_entities () 

§2.2.2.1.1.2 — delete every ReadCondition owned by this reader. Always returns RETCODE_OK.


function delete_readcondition

ReturnCode_t astutedds::dcps::DataReader::delete_readcondition (
    ReadCondition * condition
) 

§2.2.2.5.2.2 — destroy a ReadCondition previously returned by create_readcondition(). Returns RETCODE_PRECONDITION_NOT_MET when condition is null or was not created by this reader.


function enable

inline ReturnCode_t astutedds::dcps::DataReader::enable () noexcept

function get_entity_statuscondition

inline EntityStatusCondition * astutedds::dcps::DataReader::get_entity_statuscondition () noexcept

function get_instance_handle

inline InstanceHandle_t astutedds::dcps::DataReader::get_instance_handle () noexcept const

function get_key_value

Get the key value for an instance.

ReturnCode_t astutedds::dcps::DataReader::get_key_value (
    std::vector< uint8_t > & key_holder,
    InstanceHandle_t handle
) 

Parameters:

  • key_holder Output data for key fields
  • handle The instance handle

Returns:

RETCODE_OK on success


function get_listener

inline DataReaderListener * astutedds::dcps::DataReader::get_listener () const

function get_liveliness_changed_status

Get liveliness-changed status (DDS §2.2.4.1.4). Tracks the count of matched remote writers whose liveliness is currently asserted (alive_count) vs expired (not_alive_count). The *_change deltas are reset on read.

LivelinessChangedStatus astutedds::dcps::DataReader::get_liveliness_changed_status () const


function get_matched_publication_data

ReturnCode_t astutedds::dcps::DataReader::get_matched_publication_data (
    PublicationBuiltinTopicData & data,
    InstanceHandle_t handle
) const

§2.2.2.5.1.15 — retrieve PublicationBuiltinTopicData for a specific matched publication. Returns RETCODE_BAD_PARAMETER if handle does not correspond to any currently matched publication of this reader, RETCODE_NOT_ENABLED if the reader has not been enabled, RETCODE_OK on success.


function get_matched_publications

ReturnCode_t astutedds::dcps::DataReader::get_matched_publications (
    std::vector< InstanceHandle_t > & handles
) const

§2.2.2.5.1.14 — retrieve the list of publications currently matched by this DataReader. handles is cleared and populated with a stable-per-process InstanceHandle_t for each matched writer (derived from its RTPS GUID via liveliness_handle_from_guid()). Returns RETCODE_NOT_ENABLED if the reader has not been enabled, RETCODE_OK otherwise.


function get_qos

inline const DataReaderQos & astutedds::dcps::DataReader::get_qos () const

function get_requested_deadline_missed_status

Get requested-deadline-missed status (DDS §2.2.4.1.5). Bumps every time no matching sample arrives within the DEADLINE QoS period. total_count_change reset on read.

RequestedDeadlineMissedStatus astutedds::dcps::DataReader::get_requested_deadline_missed_status () 


function get_requested_incompatible_qos_status

void astutedds::dcps::DataReader::get_requested_incompatible_qos_status (
    RequestedIncompatibleQosStatus & out
) 

function get_sample_lost_status

Get sample-lost status (DDS §2.2.4.1.7). Bumps once per sample that will never be delivered to the reader — currently signalled from the KEEP_LAST overflow path in DataReader::add_sample() .total_count_change resets on read.

SampleLostStatus astutedds::dcps::DataReader::get_sample_lost_status () 


function get_sample_rejected_status

Get sample-rejected status (DDS §2.2.4.1.8 / §2.2.2.5.3.25). Bumped from DataReader::add_sample when the reader's cache is at RESOURCE_LIMITS.max_samples and the incoming sample cannot be admitted (REJECTED_BY_SAMPLES_LIMIT).last_reason andlast_instance_handle reflect the most recent rejection;total_count_change resets on each call.

SampleRejectedStatus astutedds::dcps::DataReader::get_sample_rejected_status () 


function get_status_changes

inline StatusMask astutedds::dcps::DataReader::get_status_changes () noexcept const

function get_subscription_matched_status

void astutedds::dcps::DataReader::get_subscription_matched_status (
    SubscriptionMatchedStatus & out
) 

function get_topicdescription

TopicDescription * astutedds::dcps::DataReader::get_topicdescription () const

function guid

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

function is_enabled

inline bool astutedds::dcps::DataReader::is_enabled () noexcept const

function is_writer_matched

bool astutedds::dcps::DataReader::is_writer_matched (
    const rtps::GUID_t & writer_guid
) const

§1.1b-B — true if writer_guid is currently in this reader's matched-writers set. Used by the participant's liveliness routing callback to fan changed events out to the affected readers only.


function latency_budget_exceeded_count

Phase 2.11.c — DDS §2.2.3.9 LATENCY_BUDGET diagnostic.

uint64_t astutedds::dcps::DataReader::latency_budget_exceeded_count () const

Returns the number of samples admitted to this reader's cache whose observed transit time (reception_timestamp - source_timestamp) exceeded qos.latency_budget.duration. A zero budget (default) leaves the counter permanently at zero because the policy is considered a hint (§2.2.3.9). Monotonic across the reader's lifetime; not drained on read.


function lookup_instance

InstanceHandle_t astutedds::dcps::DataReader::lookup_instance (
    const std::vector< uint8_t > & key_holder
) const

§2.2.2.5.3.20 — look up the InstanceHandle_t for key_holder (the caller's serialized key bytes). Returns HANDLE_NIL if the key has never been seen by this reader. The current implementation matches by exact byte equality against the key snapshots recorded by add_sample().


function note_requested_incompatible_qos

void astutedds::dcps::DataReader::note_requested_incompatible_qos (
    QosPolicyId_t failed_policy_id
) 

Record that a remote DataWriter was seen with QoS incompatible with this reader's requested QoS. Bumps the RequestedIncompatibleQosStatus counters and, if a listener is registered, delivers the updated status.


function notify_receive

void astutedds::dcps::DataReader::notify_receive (
    InstanceHandle_t handle
) 

function operator=

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

function process_heartbeat

void astutedds::dcps::DataReader::process_heartbeat (
    const rtps::GUID_t & writer_guid,
    const rtps::SequenceNumber_t & first_sn,
    const rtps::SequenceNumber_t & last_sn,
    rtps::Count_t count,
    bool final
) 

function read [1/3]

Read samples (keeps samples in cache)

std::vector< ReceivedSample > astutedds::dcps::DataReader::read (
    size_t max_samples=0xFFFFFFFF
) 


function read [2/3]

ReturnCode_t astutedds::dcps::DataReader::read (
    std::vector< std::vector< uint8_t > > & data_values,
    std::vector< SampleInfo > & sample_infos,
    int32_t max_samples=-1,
    SampleStateMask sample_states=ANY_SAMPLE_STATE,
    ViewStateMask view_states=ANY_VIEW_STATE,
    InstanceStateMask instance_states=ANY_INSTANCE_STATE
) 

function read [3/3]

std::vector< ReceivedSample > astutedds::dcps::DataReader::read (
    size_t max_samples,
    SampleStateMask sample_states,
    ViewStateMask view_states,
    InstanceStateMask instance_states
) 

function read_instance

std::vector< ReceivedSample > astutedds::dcps::DataReader::read_instance (
    InstanceHandle_t a_handle,
    size_t max_samples=0xFFFFFFFF,
    SampleStateMask sample_states=ANY_SAMPLE_STATE,
    ViewStateMask view_states=ANY_VIEW_STATE,
    InstanceStateMask instance_states=ANY_INSTANCE_STATE
) 

§2.2.2.5.3.8 — read all samples belonging to a_handle (deliver-only, does not remove from cache). Returns an empty vector if a_handle is HANDLE_NIL or not currently held.


function read_instance_w_condition

std::vector< ReceivedSample > astutedds::dcps::DataReader::read_instance_w_condition (
    InstanceHandle_t a_handle,
    ReadCondition * condition,
    size_t max_samples=0xFFFFFFFF
) 

§2.2.2.5.3.12 / .13 / .14 / .15 — condition-filtered variants of the four instance operations above.


function read_next_instance

std::vector< ReceivedSample > astutedds::dcps::DataReader::read_next_instance (
    InstanceHandle_t previous_handle,
    size_t max_samples=0xFFFFFFFF,
    SampleStateMask sample_states=ANY_SAMPLE_STATE,
    ViewStateMask view_states=ANY_VIEW_STATE,
    InstanceStateMask instance_states=ANY_INSTANCE_STATE
) 

§2.2.2.5.3.10 — read samples belonging to the instance whose handle sorts immediately after previous_handle (pass HANDLE_NIL to get the first instance).


function read_next_instance_w_condition

std::vector< ReceivedSample > astutedds::dcps::DataReader::read_next_instance_w_condition (
    InstanceHandle_t previous_handle,
    ReadCondition * condition,
    size_t max_samples=0xFFFFFFFF
) 

function read_next_sample

Read the next sample from the reader.

ReturnCode_t astutedds::dcps::DataReader::read_next_sample (
    std::vector< uint8_t > & data,
    SampleInfo & info
) 

Parameters:

  • data Output buffer for serialized data
  • info Output sample info

Returns:

RETCODE_OK on success, RETCODE_NO_DATA if no data available


function read_w_condition

§2.2.2.5.3.6 — read filtered by condition's mask triplet.

std::vector< ReceivedSample > astutedds::dcps::DataReader::read_w_condition (
    ReadCondition * condition,
    size_t max_samples=0xFFFFFFFF
) 


function remove_matched_writer

void astutedds::dcps::DataReader::remove_matched_writer (
    const rtps::GUID_t & writer_guid
) 

function return_loan

Return a loaned sequence pair granted by a prior read/take.

ReturnCode_t astutedds::dcps::DataReader::return_loan (
    std::vector< std::vector< uint8_t > > & data_values,
    std::vector< SampleInfo > & sample_infos
) 

DDS 1.4 §2.2.2.5.3.20. Validates that data_values and sample_infos are a pair previously handed out with a loan grant. Clears the sequences and releases the reader's bookkeeping. Returns: * RETCODE_OK — loan released, or the pair was empty-empty (no loan to release). * RETCODE_PRECONDITION_NOT_MET — the pair was not granted as a loan by this reader.


function run_autopurge_sweep

Phase 2.11.e — DDS §2.2.3.19 test / diagnostic helper.

size_t astutedds::dcps::DataReader::run_autopurge_sweep () 

Runs the READER_DATA_LIFECYCLE autopurge sweep immediately and returns the number of instances purged by this call. Applications normally do not need to call this — the sweep runs lazily inside add_sample() and read/take entry points — but the explicit hook lets tests force deterministic timing without waiting for a subsequent sample or read.


function select

§7.13.2 — build a fluent selector for a subsequent read/take.

inline Selector astutedds::dcps::DataReader::select () noexcept


function set_acknack_callback

inline void astutedds::dcps::DataReader::set_acknack_callback (
    AcknackCallback cb
) 

function set_data_callback

inline void astutedds::dcps::DataReader::set_data_callback (
    DataCallback callback
) 

function set_deadline_timer_service

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

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


function set_guid

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

function set_listener

inline void astutedds::dcps::DataReader::set_listener (
    DataReaderListener * listener
) 

function set_liveliness_changed_hook

inline void astutedds::dcps::DataReader::set_liveliness_changed_hook (
    LivelinessChangedStatusHook hook
) 

function set_qos

void astutedds::dcps::DataReader::set_qos (
    const DataReaderQos & qos
) 

function set_topicdescription

inline void astutedds::dcps::DataReader::set_topicdescription (
    TopicDescription * td
) 

function start_deadline_timer

void astutedds::dcps::DataReader::start_deadline_timer () 

function stop_deadline_timer

void astutedds::dcps::DataReader::stop_deadline_timer () 

function subscriber

inline Subscriber * astutedds::dcps::DataReader::subscriber () const

function take [1/3]

Take samples (removes samples from cache)

std::vector< ReceivedSample > astutedds::dcps::DataReader::take (
    size_t max_samples=0xFFFFFFFF
) 


function take [2/3]

ReturnCode_t astutedds::dcps::DataReader::take (
    std::vector< std::vector< uint8_t > > & data_values,
    std::vector< SampleInfo > & sample_infos,
    int32_t max_samples=-1,
    SampleStateMask sample_states=ANY_SAMPLE_STATE,
    ViewStateMask view_states=ANY_VIEW_STATE,
    InstanceStateMask instance_states=ANY_INSTANCE_STATE
) 

function take [3/3]

std::vector< ReceivedSample > astutedds::dcps::DataReader::take (
    size_t max_samples,
    SampleStateMask sample_states,
    ViewStateMask view_states,
    InstanceStateMask instance_states
) 

function take_instance

§2.2.2.5.3.9 — take all samples belonging to a_handle .

std::vector< ReceivedSample > astutedds::dcps::DataReader::take_instance (
    InstanceHandle_t a_handle,
    size_t max_samples=0xFFFFFFFF,
    SampleStateMask sample_states=ANY_SAMPLE_STATE,
    ViewStateMask view_states=ANY_VIEW_STATE,
    InstanceStateMask instance_states=ANY_INSTANCE_STATE
) 


function take_instance_w_condition

std::vector< ReceivedSample > astutedds::dcps::DataReader::take_instance_w_condition (
    InstanceHandle_t a_handle,
    ReadCondition * condition,
    size_t max_samples=0xFFFFFFFF
) 

function take_next_instance

std::vector< ReceivedSample > astutedds::dcps::DataReader::take_next_instance (
    InstanceHandle_t previous_handle,
    size_t max_samples=0xFFFFFFFF,
    SampleStateMask sample_states=ANY_SAMPLE_STATE,
    ViewStateMask view_states=ANY_VIEW_STATE,
    InstanceStateMask instance_states=ANY_INSTANCE_STATE
) 

§2.2.2.5.3.11 — take samples belonging to the instance whose handle sorts immediately after previous_handle.


function take_next_instance_w_condition

std::vector< ReceivedSample > astutedds::dcps::DataReader::take_next_instance_w_condition (
    InstanceHandle_t previous_handle,
    ReadCondition * condition,
    size_t max_samples=0xFFFFFFFF
) 

function take_next_sample

Take the next sample from the reader (removes from cache)

ReturnCode_t astutedds::dcps::DataReader::take_next_sample (
    std::vector< uint8_t > & data,
    SampleInfo & info
) 

Parameters:

  • data Output buffer for serialized data
  • info Output sample info

Returns:

RETCODE_OK on success, RETCODE_NO_DATA if no data available


function take_w_condition

§2.2.2.5.3.7 — take filtered by condition's mask triplet.

std::vector< ReceivedSample > astutedds::dcps::DataReader::take_w_condition (
    ReadCondition * condition,
    size_t max_samples=0xFFFFFFFF
) 


function topic

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

function unread_count

size_t astutedds::dcps::DataReader::unread_count () const

function wait_for_historical_data

ReturnCode_t astutedds::dcps::DataReader::wait_for_historical_data (
    const Duration_t & max_wait
) 

§2.2.2.5.1.17 — wait for historical samples from writers with DURABILITY = TRANSIENT_LOCAL / TRANSIENT / PERSISTENT. The reader currently receives historical samples in-band with live samples (no gating), so this call is a no-op success; kept in the public API for spec conformance.


function ~DataReader

virtual astutedds::dcps::DataReader::~DataReader () 

Protected Attributes Documentation

variable topicdescription_

TopicDescription* astutedds::dcps::DataReader::topicdescription_;


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