20#ifndef FASTDDS_DDS_SUBSCRIBER__DATAREADER_HPP
21#define FASTDDS_DDS_SUBSCRIBER__DATAREADER_HPP
26#include <fastdds/dds/builtin/topic/PublicationBuiltinTopicData.hpp>
27#include <fastdds/dds/builtin/topic/SubscriptionBuiltinTopicData.hpp>
28#include <fastdds/dds/core/Entity.hpp>
29#include <fastdds/dds/core/LoanableCollection.hpp>
30#include <fastdds/dds/core/LoanableSequence.hpp>
31#include <fastdds/dds/core/ReturnCode.hpp>
32#include <fastdds/dds/core/status/BaseStatus.hpp>
33#include <fastdds/dds/core/status/DeadlineMissedStatus.hpp>
34#include <fastdds/dds/core/status/IncompatibleQosStatus.hpp>
35#include <fastdds/dds/core/status/SampleRejectedStatus.hpp>
36#include <fastdds/dds/core/status/StatusMask.hpp>
37#include <fastdds/dds/core/status/SubscriptionMatchedStatus.hpp>
38#include <fastdds/dds/subscriber/ReadCondition.hpp>
39#include <fastdds/dds/subscriber/SampleInfo.hpp>
40#include <fastdds/dds/topic/TypeSupport.hpp>
42#include <fastdds/fastdds_dll.hpp>
44#include <fastdds/rtps/common/LocatorList.hpp>
45#include <fastdds/rtps/common/Time_t.hpp>
66class DataReaderListener;
68class TopicDescription;
69struct LivelinessChangedStatus;
783 const void* instance)
const;
814 bool mark_as_read)
const;
993 std::vector<InstanceHandle_t>& publication_handles)
const;
1026 const std::string& query_expression,
1027 const std::vector<std::string>& query_parameters);
1095 friend class ::dds::sub::DataReader;
Class DataReader, contains the actual implementation of the behaviour of the Subscriber.
Definition DataReader.hpp:82
FASTDDS_EXPORTED_API ReturnCode_t take_next_sample(void *data, SampleInfo *info)
This operation copies the next, non-previously accessed Data value from the DataReader and ‘removes’ ...
FASTDDS_EXPORTED_API ReadCondition * create_readcondition(SampleStateMask sample_states, ViewStateMask view_states, InstanceStateMask instance_states)
This operation creates a ReadCondition.
FASTDDS_EXPORTED_API const TopicDescription * get_topicdescription() const
Get TopicDescription.
FASTDDS_EXPORTED_API ReturnCode_t get_sample_rejected_status(SampleRejectedStatus &status) const
Get the SAMPLE_REJECTED communication status.
FASTDDS_EXPORTED_API ReturnCode_t return_loan(LoanableCollection &data_values, SampleInfoSeq &sample_infos)
This operation indicates to the DataReader that the application is done accessing the collection of d...
DataReaderImpl * impl_
Definition DataReader.hpp:1093
DataReader(Subscriber *s, TopicDescription *topic, const DataReaderQos &qos, DataReaderListener *listener=nullptr, const StatusMask &mask=StatusMask::all())
FASTDDS_EXPORTED_API bool is_sample_valid(const void *data, const SampleInfo *info) const
Checks whether a loaned sample is still valid or is corrupted.
FASTDDS_EXPORTED_API ReturnCode_t read_next_instance_w_condition(LoanableCollection &data_values, SampleInfoSeq &sample_infos, int32_t max_samples, const InstanceHandle_t &previous_handle, ReadCondition *a_condition)
This operation accesses a collection of Data values from the DataReader.
FASTDDS_EXPORTED_API ReturnCode_t get_subscription_matched_status(SubscriptionMatchedStatus &status) const
Returns the subscription matched status.
FASTDDS_EXPORTED_API uint64_t get_unread_count() const
Get the number of samples pending to be read.
FASTDDS_EXPORTED_API const fastdds::rtps::GUID_t & guid()
Get associated GUID.
FASTDDS_EXPORTED_API ReturnCode_t read_next_sample(void *data, SampleInfo *info)
This operation copies the next, non-previously accessed Data value from the DataReader; the operation...
FASTDDS_EXPORTED_API ReturnCode_t take_instance(LoanableCollection &data_values, SampleInfoSeq &sample_infos, int32_t max_samples=LENGTH_UNLIMITED, const InstanceHandle_t &a_handle=HANDLE_NIL, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
Access a collection of data samples from the DataReader.
FASTDDS_EXPORTED_API ReturnCode_t take_next_instance(LoanableCollection &data_values, SampleInfoSeq &sample_infos, int32_t max_samples=LENGTH_UNLIMITED, const InstanceHandle_t &previous_handle=HANDLE_NIL, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
Access a collection of data samples from the DataReader.
FASTDDS_EXPORTED_API ReturnCode_t read_instance(LoanableCollection &data_values, SampleInfoSeq &sample_infos, int32_t max_samples=LENGTH_UNLIMITED, const InstanceHandle_t &a_handle=HANDLE_NIL, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
Access a collection of data samples from the DataReader.
FASTDDS_EXPORTED_API ReturnCode_t get_key_value(void *key_holder, const InstanceHandle_t &handle)
NOT YET IMPLEMENTED.
FASTDDS_EXPORTED_API uint64_t get_unread_count(bool mark_as_read) const
Get the number of samples pending to be read.
virtual ~DataReader()
Destructor.
FASTDDS_EXPORTED_API ReturnCode_t get_requested_deadline_missed_status(RequestedDeadlineMissedStatus &status)
Get the requested deadline missed status.
FASTDDS_EXPORTED_API const fastdds::rtps::GUID_t & guid() const
Get associated GUID.
FASTDDS_EXPORTED_API ReturnCode_t take(LoanableCollection &data_values, SampleInfoSeq &sample_infos, int32_t max_samples=LENGTH_UNLIMITED, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
Access a collection of data samples from the DataReader.
FASTDDS_EXPORTED_API ReturnCode_t read(LoanableCollection &data_values, SampleInfoSeq &sample_infos, int32_t max_samples=LENGTH_UNLIMITED, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
Access a collection of data samples from the DataReader.
FASTDDS_EXPORTED_API ReturnCode_t get_requested_incompatible_qos_status(RequestedIncompatibleQosStatus &status)
Get the requested incompatible qos status.
FASTDDS_EXPORTED_API const Subscriber * get_subscriber() const
Getter for the Subscriber.
FASTDDS_EXPORTED_API ReturnCode_t set_qos(const DataReaderQos &qos)
Setter for the DataReaderQos.
FASTDDS_EXPORTED_API ReturnCode_t get_matched_publication_data(PublicationBuiltinTopicData &publication_data, const fastdds::rtps::InstanceHandle_t &publication_handle) const
Retrieves in a publication associated with the DataWriter.
FASTDDS_EXPORTED_API ReturnCode_t wait_for_historical_data(const fastdds::dds::Duration_t &max_wait) const
NOT YET IMPLEMENTED.
FASTDDS_EXPORTED_API InstanceHandle_t get_instance_handle() const
Getter for the associated InstanceHandle.
FASTDDS_EXPORTED_API const DataReaderQos & get_qos() const
Getter for the DataReaderQos.
FASTDDS_EXPORTED_API ReturnCode_t take_w_condition(LoanableCollection &data_values, SampleInfoSeq &sample_infos, int32_t max_samples, ReadCondition *a_condition)
This operation is analogous to read_w_condition except it accesses samples via the ‘take’ operation.
friend class SubscriberImpl
Definition DataReader.hpp:86
FASTDDS_EXPORTED_API ReturnCode_t get_matched_publications(std::vector< InstanceHandle_t > &publication_handles) const
Fills the given vector with the InstanceHandle_t of matched DataReaders.
FASTDDS_EXPORTED_API InstanceHandle_t lookup_instance(const void *instance) const
Takes as a parameter an instance and returns a handle that can be used in subsequent operations that ...
FASTDDS_EXPORTED_API ReturnCode_t read_w_condition(LoanableCollection &data_values, SampleInfoSeq &sample_infos, int32_t max_samples, ReadCondition *a_condition)
This operation accesses via ‘read’ the samples that match the criteria specified in the ReadCondition...
FASTDDS_EXPORTED_API ReturnCode_t get_subscription_builtin_topic_data(SubscriptionBuiltinTopicData &subscription_data) const
Retrieve the subscription data discovery information.
FASTDDS_EXPORTED_API QueryCondition * create_querycondition(SampleStateMask sample_states, ViewStateMask view_states, InstanceStateMask instance_states, const std::string &query_expression, const std::vector< std::string > &query_parameters)
This operation creates a QueryCondition.
FASTDDS_EXPORTED_API ReturnCode_t delete_contained_entities()
This operation deletes all the entities that were created by means of the “create” operations on the ...
friend class DataReaderImpl
Definition DataReader.hpp:85
FASTDDS_EXPORTED_API ReturnCode_t delete_readcondition(ReadCondition *a_condition)
This operation deletes a ReadCondition attached to the DataReader.
FASTDDS_EXPORTED_API ReturnCode_t get_qos(DataReaderQos &qos) const
Getter for the DataReaderQos.
FASTDDS_EXPORTED_API ReturnCode_t enable() override
This operation enables the DataReader.
FASTDDS_EXPORTED_API const DataReaderListener * get_listener() const
Getter for the DataReaderListener.
FASTDDS_EXPORTED_API ReturnCode_t take_next_instance_w_condition(LoanableCollection &data_values, SampleInfoSeq &sample_infos, int32_t max_samples, const InstanceHandle_t &previous_handle, ReadCondition *a_condition)
This operation accesses a collection of Data values from the DataReader.
FASTDDS_EXPORTED_API ReturnCode_t get_sample_lost_status(SampleLostStatus &status) const
Get the SAMPLE_LOST communication status.
FASTDDS_EXPORTED_API ReturnCode_t set_listener(DataReaderListener *listener, const StatusMask &mask)
Modifies the DataReaderListener.
FASTDDS_EXPORTED_API ReturnCode_t get_liveliness_changed_status(LivelinessChangedStatus &status) const
Get the liveliness changed status.
FASTDDS_EXPORTED_API ReturnCode_t read_next_instance(LoanableCollection &data_values, SampleInfoSeq &sample_infos, int32_t max_samples=LENGTH_UNLIMITED, const InstanceHandle_t &previous_handle=HANDLE_NIL, SampleStateMask sample_states=ANY_SAMPLE_STATE, ViewStateMask view_states=ANY_VIEW_STATE, InstanceStateMask instance_states=ANY_INSTANCE_STATE)
Access a collection of data samples from the DataReader.
FASTDDS_EXPORTED_API ReturnCode_t get_first_untaken_info(SampleInfo *info)
Returns information about the first untaken sample.
FASTDDS_EXPORTED_API ReturnCode_t set_listener(DataReaderListener *listener)
Modifies the DataReaderListener, sets the mask to StatusMask::all().
FASTDDS_EXPORTED_API bool wait_for_unread_message(const fastdds::dds::Duration_t &timeout)
Method to block the current thread until an unread message is available.
DataReader(DataReaderImpl *impl, const StatusMask &mask=StatusMask::all())
Create a data reader, assigning its pointer to the associated implementation.
FASTDDS_EXPORTED_API ReturnCode_t get_listening_locators(rtps::LocatorList &locators) const
Get the list of locators on which this DataReader is listening.
FASTDDS_EXPORTED_API TypeSupport type()
Getter for the data type.
Class DataReaderListener, it should be used by the end user to implement specific callbacks to certai...
Definition DataReaderListener.hpp:41
Class DataReaderQos, containing all the possible Qos that can be set for a determined DataReader.
Definition DataReaderQos.hpp:133
The DomainEntity class is a subclass of Entity created in order to differentiate between DomainPartic...
Definition Entity.hpp:166
A collection of generic opaque pointers that can receive the buffer from outside (loan).
Definition LoanableCollection.hpp:34
A type-safe, ordered collection of elements that can receive the buffer from outside (loan).
Definition LoanableSequence.hpp:63
A Condition specifically dedicated to read operations and attached to one DataReader.
Definition ReadCondition.hpp:52
StatusMask is a bitmap or bitset field.
Definition StatusMask.hpp:48
static StatusMask all()
Get all StatusMasks.
Definition StatusMask.hpp:104
Class Subscriber, contains the public API that allows the user to control the reception of messages.
Definition Subscriber.hpp:66
Class TopicDescription, represents the fact that both publications and subscriptions are tied to a si...
Definition TopicDescription.hpp:38
Class TypeSupport used to provide the DomainRTPSParticipant with the methods to serialize,...
Definition TypeSupport.hpp:47
Class LocatorList, a Locator vector that doesn't allow duplicates.
Definition LocatorList.hpp:97
Definition DomainParticipant.hpp:45
uint16_t SampleStateMask
A bit-mask (list) of sample states, i.e. SampleStateKind.
Definition SampleState.hpp:51
constexpr InstanceStateMask ANY_INSTANCE_STATE
Any instance state.
Definition InstanceState.hpp:81
constexpr SampleStateMask ANY_SAMPLE_STATE
Any sample state.
Definition SampleState.hpp:54
const int32_t LENGTH_UNLIMITED
Definition Types.hpp:28
FASTDDS_EXPORTED_API const InstanceHandle_t HANDLE_NIL
uint16_t ViewStateMask
A bit-mask (list) of view states, i.e. ViewStateKind.
Definition ViewState.hpp:62
int32_t ReturnCode_t
Definition DDSReturnCode.hpp:59
uint16_t InstanceStateMask
A bit-mask (list) of instance states, i.e. InstanceStateKind.
Definition InstanceState.hpp:75
constexpr ViewStateMask ANY_VIEW_STATE
Any view state.
Definition ViewState.hpp:65
A struct storing the base status.
Definition BaseStatus.hpp:30
A struct storing the deadline status.
Definition DeadlineMissedStatus.hpp:31
A struct storing the requested incompatible QoS status.
Definition IncompatibleQosStatus.hpp:61
A struct storing the liveliness changed status.
Definition LivelinessChangedStatus.hpp:30
SampleInfo is the information that accompanies each sample that is ‘read’ or ‘taken.
Definition SampleInfo.hpp:41
A struct storing the sample rejected status.
Definition SampleRejectedStatus.hpp:45
A structure storing the subscription status.
Definition SubscriptionMatchedStatus.hpp:33
Structure Time_t, used to describe times at a DDS level.
Definition Time_t.hpp:36
Structure GUID_t, entity identifier, unique in DDS-RTPS Domain.
Definition Guid.hpp:40
Struct InstanceHandle_t, used to contain the key for WITH_KEY topics.
Definition InstanceHandle.hpp:154
Structure PublicationBuiltinTopicData, contains the information on a discovered publication.
Definition PublicationBuiltinTopicData.hpp:39
Structure SubscriptionBuiltinTopicData, contains the information on a discovered subscription.
Definition SubscriptionBuiltinTopicData.hpp:37