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_holderOutput data for key fieldshandleThe 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:
dataOutput buffer for serialized datainfoOutput 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:
dataOutput buffer for serialized datainfoOutput 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