Fast DDS  Version 3.6.1.0
Fast DDS
PublicationBuiltinTopicData.hpp
1 // Copyright 2024 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 
19 #ifndef FASTDDS_RTPS_BUILTIN_DATA__PUBLICATIONBUILTINTOPICDATA_HPP
20 #define FASTDDS_RTPS_BUILTIN_DATA__PUBLICATIONBUILTINTOPICDATA_HPP
21 
22 #include <cstdint>
23 #include <string>
24 
25 #include <fastcdr/xcdr/optional.hpp>
26 #include <fastcdr/cdr/fixed_size_string.hpp>
27 
28 #include <fastdds/dds/core/policy/QosPolicies.hpp>
29 #include <fastdds/dds/core/policy/RTPSReliableWriterQos.hpp>
30 #include <fastdds/dds/core/policy/WriterDataLifecycleQosPolicy.hpp>
31 #include <fastdds/rtps/attributes/RTPSParticipantAllocationAttributes.hpp>
32 #include <fastdds/rtps/builtin/data/BuiltinTopicKey.hpp>
33 #include <fastdds/rtps/common/Guid.hpp>
34 #include <fastdds/rtps/common/RemoteLocators.hpp>
35 #include <fastdds/rtps/common/Types.hpp>
36 
37 namespace eprosima {
38 namespace fastdds {
39 namespace dds {
40 
41 class WriterQos;
42 
43 } // namespace dds
44 namespace rtps {
45 
48 {
49  FASTDDS_EXPORTED_API PublicationBuiltinTopicData();
50 
51  FASTDDS_EXPORTED_API PublicationBuiltinTopicData(
52  const size_t max_unicast_locators,
53  const size_t max_multicast_locators,
54  const VariableLengthDataLimits& data_limits);
55 
57  BuiltinTopicKey_t key{{0, 0, 0}};
58 
61 
63  fastcdr::string_255 topic_name;
64 
66  fastcdr::string_255 type_name;
67 
69  TopicKind_t topic_kind = TopicKind_t::NO_KEY;
70 
71  // DataWriter Qos
72 
75 
78 
81 
84 
87 
90 
93 
95  dds::UserDataQosPolicy user_data;
96 
99 
102 
105 
106  // Publisher Qos
107 
110 
113 
115  dds::TopicDataQosPolicy topic_data;
116 
118  dds::GroupDataQosPolicy group_data;
119 
120  // X-Types 1.3
121 
124 
127 
128  // RPC over DDS V1.0
129 
130  // Related DataReader Key
132 
133  // eProsima extensions
134 
137 
140 
142  fastcdr::optional<dds::HistoryQosPolicy> history;
143 
145  fastcdr::optional<dds::ResourceLimitsQosPolicy> resource_limits;
146 
148  fastcdr::optional<dds::TransportPriorityQosPolicy> transport_priority;
149 
151  fastcdr::optional<dds::WriterDataLifecycleQosPolicy> writer_data_lifecycle;
152 
154  fastcdr::optional<dds::PublishModeQosPolicy> publish_mode;
155 
157  fastcdr::optional<dds::RTPSReliableWriterQos> rtps_reliable_writer;
158 
160  fastcdr::optional<dds::RTPSEndpointQos> endpoint;
161 
163  fastcdr::optional<dds::WriterResourceLimitsQos> writer_resource_limits;
164 
167 
170 
173 
176 
178  uint32_t max_serialized_size = 0;
179 
182 
185 };
186 
187 } // namespace rtps
188 } // namespace fastdds
189 } // namespace eprosima
190 
191 #endif // FASTDDS_RTPS_BUILTIN_DATA__PUBLICATIONBUILTINTOPICDATA_HPP
With multiple standard data Representations available, and vendor-specific extensions possible,...
Definition: QosPolicies.hpp:2070
Qos Policy to configure the data sharing.
Definition: QosPolicies.hpp:2952
DataReader expects a new sample updating the value of each instance at least once every deadline peri...
Definition: QosPolicies.hpp:363
Controls the criteria used to determine the logical order among changes made by Publisher entities to...
Definition: QosPolicies.hpp:719
Class DisablePositiveACKsQosPolicy to disable sending of positive ACKs.
Definition: QosPolicies.hpp:2222
This policy expresses if the data should ‘outlive’ their writing time.
Definition: QosPolicies.hpp:278
Specifies the configuration of the durability service.
Definition: QosPolicies.hpp:1789
Specifies the maximum acceptable delay from the time the data is written until the data is inserted i...
Definition: QosPolicies.hpp:416
Specifies the maximum duration of validity of the data written by the DataWriter.
Definition: QosPolicies.hpp:1877
Determines the mechanism and parameters used by the application to determine whether an Entity is “ac...
Definition: QosPolicies.hpp:488
Specifies whether it is allowed for multiple DataWriters to write the same instance of the data and i...
Definition: QosPolicies.hpp:652
Specifies the value of the “strength” used to arbitrate among multiple DataWriter objects that attemp...
Definition: QosPolicies.hpp:1923
Definition: ParameterTypes.hpp:1251
Set of strings that introduces a logical partition among the topics visible by the Publisher and Subs...
Definition: QosPolicies.hpp:1286
Specifies how the samples representing changes to data instances are presented to the subscribing app...
Definition: QosPolicies.hpp:1156
Indicates the reliability of the endpoint.
Definition: QosPolicies.hpp:570
Class xtypes::TypeInformationParameter.
Definition: QosPolicies.hpp:2495
Definition: DomainParticipant.hpp:46
uint32_t NetworkConfigSet_t
Definition: Types.hpp:86
TopicKind_t
Topic kind.
Definition: Types.hpp:72
Definition: BuiltinTopicKey.hpp:30
Structure GUID_t, entity identifier, unique in DDS-RTPS Domain.
Definition: Guid.hpp:40
Structure PublicationBuiltinTopicData, contains the information on a discovered publication.
Definition: PublicationBuiltinTopicData.hpp:48
dds::DeadlineQosPolicy deadline
Deadline Qos, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:80
dds::xtypes::TypeInformationParameter type_information
Type information.
Definition: PublicationBuiltinTopicData.hpp:123
dds::LifespanQosPolicy lifespan
Lifespan Qos, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:92
dds::UserDataQosPolicy user_data
User Data Qos, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:95
GUID_t persistence_guid
Persistence GUID.
Definition: PublicationBuiltinTopicData.hpp:169
dds::PartitionQosPolicy partition
Partition Qos, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:112
TopicKind_t topic_kind
Topic kind.
Definition: PublicationBuiltinTopicData.hpp:69
fastcdr::optional< dds::RTPSEndpointQos > endpoint
Endpoint qos policy.
Definition: PublicationBuiltinTopicData.hpp:160
dds::DestinationOrderQosPolicy destination_order
Destination Order Qos, NOT implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:104
NetworkConfigSet_t loopback_transformation
Network configuration.
Definition: PublicationBuiltinTopicData.hpp:181
dds::DurabilityQosPolicy durability
Durability Qos, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:74
fastcdr::string_255 type_name
Type name.
Definition: PublicationBuiltinTopicData.hpp:66
FASTDDS_EXPORTED_API PublicationBuiltinTopicData(const size_t max_unicast_locators, const size_t max_multicast_locators, const VariableLengthDataLimits &data_limits)
fastcdr::optional< dds::TransportPriorityQosPolicy > transport_priority
Transport priority Qos.
Definition: PublicationBuiltinTopicData.hpp:148
fastcdr::optional< dds::ResourceLimitsQosPolicy > resource_limits
Resource limits Qos.
Definition: PublicationBuiltinTopicData.hpp:145
dds::LatencyBudgetQosPolicy latency_budget
Latency Budget Qos, NOT implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:83
ParameterPropertyList_t properties
Property list.
Definition: PublicationBuiltinTopicData.hpp:184
GUID_t guid
GUID.
Definition: PublicationBuiltinTopicData.hpp:166
dds::TopicDataQosPolicy topic_data
Topic Data Qos, NOT implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:115
fastcdr::optional< dds::RTPSReliableWriterQos > rtps_reliable_writer
Reliable writer qos policy.
Definition: PublicationBuiltinTopicData.hpp:157
dds::ReliabilityQosPolicy reliability
Reliability Qos, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:89
RemoteLocatorList remote_locators
Remote locators.
Definition: PublicationBuiltinTopicData.hpp:175
GUID_t participant_guid
Participant GUID.
Definition: PublicationBuiltinTopicData.hpp:172
dds::LivelinessQosPolicy liveliness
Liveliness Qos, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:86
dds::DataRepresentationQosPolicy representation
Data representation.
Definition: PublicationBuiltinTopicData.hpp:126
dds::OwnershipQosPolicy ownership
Ownership Qos, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:98
fastcdr::optional< dds::WriterResourceLimitsQos > writer_resource_limits
Writer resource limits qos policy.
Definition: PublicationBuiltinTopicData.hpp:163
fastcdr::optional< dds::HistoryQosPolicy > history
History Qos, kind and depth.
Definition: PublicationBuiltinTopicData.hpp:142
dds::OwnershipStrengthQosPolicy ownership_strength
Ownership Strength Qos, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:101
uint32_t max_serialized_size
Maximum serialized size of data type.
Definition: PublicationBuiltinTopicData.hpp:178
GUID_t related_datareader_key
Definition: PublicationBuiltinTopicData.hpp:131
dds::DurabilityServiceQosPolicy durability_service
Durability Service Qos, NOT implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:77
dds::DisablePositiveACKsQosPolicy disable_positive_acks
Disable positive acks, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:136
fastcdr::optional< dds::WriterDataLifecycleQosPolicy > writer_data_lifecycle
Writer data lifecycle Qos.
Definition: PublicationBuiltinTopicData.hpp:151
dds::PresentationQosPolicy presentation
Presentation Qos, NOT implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:109
dds::DataSharingQosPolicy data_sharing
Information for data sharing compatibility check.
Definition: PublicationBuiltinTopicData.hpp:139
BuiltinTopicKey_t participant_key
Builtin participant topic Key.
Definition: PublicationBuiltinTopicData.hpp:60
BuiltinTopicKey_t key
Builtin topic Key.
Definition: PublicationBuiltinTopicData.hpp:57
fastcdr::optional< dds::PublishModeQosPolicy > publish_mode
Publish mode qos policy.
Definition: PublicationBuiltinTopicData.hpp:154
dds::GroupDataQosPolicy group_data
Group Data Qos, implemented in the library.
Definition: PublicationBuiltinTopicData.hpp:118
fastcdr::string_255 topic_name
Topic name.
Definition: PublicationBuiltinTopicData.hpp:63
Holds information about the locators of a remote entity.
Definition: RemoteLocators.hpp:34
Holds limits for variable-length data.
Definition: RTPSParticipantAllocationAttributes.hpp:105