Fast DDS  Version 3.1.2
Fast DDS
Loading...
Searching...
No Matches
DataReader.hpp
1// Copyright 2019 Proyectos y Sistemas de Mantenimiento SL (eProsima).
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
20#ifndef FASTDDS_DDS_SUBSCRIBER__DATAREADER_HPP
21#define FASTDDS_DDS_SUBSCRIBER__DATAREADER_HPP
22
23#include <cstdint>
24#include <vector>
25
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>
41
42#include <fastdds/fastdds_dll.hpp>
43
44#include <fastdds/rtps/common/LocatorList.hpp>
45#include <fastdds/rtps/common/Time_t.hpp>
46
47namespace dds {
48namespace sub {
49
50class DataReader;
51
52} // namespace sub
53} // namespace dds
54
55namespace eprosima {
56namespace fastdds {
57namespace rtps {
58struct GUID_t;
59} // namespace rtps
60
61namespace dds {
62
63class Subscriber;
64class SubscriberImpl;
65class DataReaderImpl;
66class DataReaderListener;
67class DataReaderQos;
68class TopicDescription;
69struct LivelinessChangedStatus;
70
71// Not yet implemented
72class QueryCondition;
73
75
82{
83protected:
84
85 friend class DataReaderImpl;
86 friend class SubscriberImpl;
87
93 DataReaderImpl* impl,
94 const StatusMask& mask = StatusMask::all());
95
97 Subscriber* s,
98 TopicDescription* topic,
99 const DataReaderQos& qos,
100 DataReaderListener* listener = nullptr,
101 const StatusMask& mask = StatusMask::all());
102
103public:
104
108 virtual ~DataReader();
109
116 FASTDDS_EXPORTED_API ReturnCode_t enable() override;
117
125 FASTDDS_EXPORTED_API bool wait_for_unread_message(
126 const fastdds::dds::Duration_t& timeout);
127
139 const fastdds::dds::Duration_t& max_wait) const;
140
141
147
305 FASTDDS_EXPORTED_API ReturnCode_t read(
306 LoanableCollection& data_values,
307 SampleInfoSeq& sample_infos,
308 int32_t max_samples = LENGTH_UNLIMITED,
309 SampleStateMask sample_states = ANY_SAMPLE_STATE,
310 ViewStateMask view_states = ANY_VIEW_STATE,
311 InstanceStateMask instance_states = ANY_INSTANCE_STATE);
312
336 FASTDDS_EXPORTED_API ReturnCode_t read_w_condition(
337 LoanableCollection& data_values,
338 SampleInfoSeq& sample_infos,
339 int32_t max_samples,
340 ReadCondition* a_condition);
341
376 FASTDDS_EXPORTED_API ReturnCode_t read_instance(
377 LoanableCollection& data_values,
378 SampleInfoSeq& sample_infos,
379 int32_t max_samples = LENGTH_UNLIMITED,
380 const InstanceHandle_t& a_handle = HANDLE_NIL,
381 SampleStateMask sample_states = ANY_SAMPLE_STATE,
382 ViewStateMask view_states = ANY_VIEW_STATE,
383 InstanceStateMask instance_states = ANY_INSTANCE_STATE);
384
441 FASTDDS_EXPORTED_API ReturnCode_t read_next_instance(
442 LoanableCollection& data_values,
443 SampleInfoSeq& sample_infos,
444 int32_t max_samples = LENGTH_UNLIMITED,
445 const InstanceHandle_t& previous_handle = HANDLE_NIL,
446 SampleStateMask sample_states = ANY_SAMPLE_STATE,
447 ViewStateMask view_states = ANY_VIEW_STATE,
448 InstanceStateMask instance_states = ANY_INSTANCE_STATE);
449
480 LoanableCollection& data_values,
481 SampleInfoSeq& sample_infos,
482 int32_t max_samples,
483 const InstanceHandle_t& previous_handle,
484 ReadCondition* a_condition);
485
505 FASTDDS_EXPORTED_API ReturnCode_t read_next_sample(
506 void* data,
507 SampleInfo* info);
508
540 FASTDDS_EXPORTED_API ReturnCode_t take(
541 LoanableCollection& data_values,
542 SampleInfoSeq& sample_infos,
543 int32_t max_samples = LENGTH_UNLIMITED,
544 SampleStateMask sample_states = ANY_SAMPLE_STATE,
545 ViewStateMask view_states = ANY_VIEW_STATE,
546 InstanceStateMask instance_states = ANY_INSTANCE_STATE);
547
569 FASTDDS_EXPORTED_API ReturnCode_t take_w_condition(
570 LoanableCollection& data_values,
571 SampleInfoSeq& sample_infos,
572 int32_t max_samples,
573 ReadCondition* a_condition);
574
603 FASTDDS_EXPORTED_API ReturnCode_t take_instance(
604 LoanableCollection& data_values,
605 SampleInfoSeq& sample_infos,
606 int32_t max_samples = LENGTH_UNLIMITED,
607 const InstanceHandle_t& a_handle = HANDLE_NIL,
608 SampleStateMask sample_states = ANY_SAMPLE_STATE,
609 ViewStateMask view_states = ANY_VIEW_STATE,
610 InstanceStateMask instance_states = ANY_INSTANCE_STATE);
611
642 FASTDDS_EXPORTED_API ReturnCode_t take_next_instance(
643 LoanableCollection& data_values,
644 SampleInfoSeq& sample_infos,
645 int32_t max_samples = LENGTH_UNLIMITED,
646 const InstanceHandle_t& previous_handle = HANDLE_NIL,
647 SampleStateMask sample_states = ANY_SAMPLE_STATE,
648 ViewStateMask view_states = ANY_VIEW_STATE,
649 InstanceStateMask instance_states = ANY_INSTANCE_STATE);
650
680 LoanableCollection& data_values,
681 SampleInfoSeq& sample_infos,
682 int32_t max_samples,
683 const InstanceHandle_t& previous_handle,
684 ReadCondition* a_condition);
685
707 FASTDDS_EXPORTED_API ReturnCode_t take_next_sample(
708 void* data,
709 SampleInfo* info);
710
712
746 FASTDDS_EXPORTED_API ReturnCode_t return_loan(
747 LoanableCollection& data_values,
748 SampleInfoSeq& sample_infos);
749
767 FASTDDS_EXPORTED_API ReturnCode_t get_key_value(
768 void* key_holder,
769 const InstanceHandle_t& handle);
770
782 FASTDDS_EXPORTED_API InstanceHandle_t lookup_instance(
783 const void* instance) const;
784
795 SampleInfo* info);
796
804 FASTDDS_EXPORTED_API uint64_t get_unread_count() const;
805
813 FASTDDS_EXPORTED_API uint64_t get_unread_count(
814 bool mark_as_read) const;
815
821 FASTDDS_EXPORTED_API const fastdds::rtps::GUID_t& guid();
822
828 FASTDDS_EXPORTED_API const fastdds::rtps::GUID_t& guid() const;
829
835 FASTDDS_EXPORTED_API InstanceHandle_t get_instance_handle() const;
836
842 FASTDDS_EXPORTED_API TypeSupport type();
843
849 FASTDDS_EXPORTED_API const TopicDescription* get_topicdescription() const;
850
858
868
877 FASTDDS_EXPORTED_API ReturnCode_t set_qos(
878 const DataReaderQos& qos);
879
885 FASTDDS_EXPORTED_API const DataReaderQos& get_qos() const;
886
894 FASTDDS_EXPORTED_API ReturnCode_t get_qos(
895 DataReaderQos& qos) const;
896
904 FASTDDS_EXPORTED_API ReturnCode_t set_listener(
905 DataReaderListener* listener);
906
915 FASTDDS_EXPORTED_API ReturnCode_t set_listener(
916 DataReaderListener* listener,
917 const StatusMask& mask);
923 FASTDDS_EXPORTED_API const DataReaderListener* get_listener() const;
924
925 /* TODO
926 FASTDDS_EXPORTED_API bool get_key_value(
927 void* data,
928 const InstanceHandle_t& handle);
929 */
930
939 LivelinessChangedStatus& status) const;
940
941
950 SampleLostStatus& status) const;
951
960 SampleRejectedStatus& status) const;
961
969 SubscriptionMatchedStatus& status) const;
970
981 PublicationBuiltinTopicData& publication_data,
982 const fastdds::rtps::InstanceHandle_t& publication_handle) const;
983
993 std::vector<InstanceHandle_t>& publication_handles) const;
994
1006 SampleStateMask sample_states,
1007 ViewStateMask view_states,
1008 InstanceStateMask instance_states);
1009
1022 FASTDDS_EXPORTED_API QueryCondition* create_querycondition(
1023 SampleStateMask sample_states,
1024 ViewStateMask view_states,
1025 InstanceStateMask instance_states,
1026 const std::string& query_expression,
1027 const std::vector<std::string>& query_parameters);
1028
1036 ReadCondition* a_condition);
1037
1042 FASTDDS_EXPORTED_API const Subscriber* get_subscriber() const;
1043
1054
1065 FASTDDS_EXPORTED_API bool is_sample_valid(
1066 const void* data,
1067 const SampleInfo* info) const;
1068
1078 rtps::LocatorList& locators) const;
1079
1089 SubscriptionBuiltinTopicData& subscription_data) const;
1090
1091protected:
1092
1094
1095 friend class ::dds::sub::DataReader;
1096
1097};
1098
1099} // namespace dds
1100} // namespace fastdds
1101} // namespace eprosima
1102
1103#endif // FASTDDS_DDS_SUBSCRIBER__DATAREADER_HPP
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
eProsima namespace.
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