Fast DDS  Version 3.6.1.0
Fast DDS
TopicQos.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_TOPIC_QOS__TOPICQOS_HPP
21 #define FASTDDS_DDS_TOPIC_QOS__TOPICQOS_HPP
22 
23 #include <fastdds/dds/core/policy/QosPolicies.hpp>
24 
25 #include <fastdds/dds/log/Log.hpp>
26 
27 namespace eprosima {
28 namespace fastdds {
29 namespace dds {
30 
39 class TopicQos
40 {
41 public:
42 
46  FASTDDS_EXPORTED_API TopicQos();
47 
49  const TopicQos& b) const
50  {
51  return (this->topic_data_ == b.topic_data()) &&
52  (this->durability_ == b.durability()) &&
53  (this->durability_service_ == b.durability_service()) &&
54  (this->deadline_ == b.deadline()) &&
55  (this->latency_budget_ == b.latency_budget()) &&
56  (this->liveliness_ == b.liveliness()) &&
57  (this->reliability_ == b.reliability()) &&
58  (this->destination_order_ == b.destination_order()) &&
59  (this->history_ == b.history()) &&
60  (this->resource_limits_ == b.resource_limits()) &&
61  (this->transport_priority_ == b.transport_priority()) &&
62  (this->lifespan_ == b.lifespan()) &&
63  (this->ownership_ == b.ownership());
64  }
65 
71  const TopicDataQosPolicy& topic_data() const
72  {
73  return topic_data_;
74  }
75 
81  TopicDataQosPolicy& topic_data()
82  {
83  return topic_data_;
84  }
85 
91  void topic_data(
92  const TopicDataQosPolicy& value)
93  {
94  topic_data_ = value;
95  }
96 
103  {
104  return durability_;
105  }
106 
113  {
114  return durability_;
115  }
116 
124  {
125  durability_ = durability;
126  }
127 
134  {
135  return durability_service_;
136  }
137 
144  {
145  return durability_service_;
146  }
147 
155  {
156  durability_service_ = durability_service;
157  }
158 
165  {
166  return deadline_;
167  }
168 
175  {
176  return deadline_;
177  }
178 
184  void deadline(
186  {
187  deadline_ = deadline;
188  }
189 
196  {
197  return latency_budget_;
198  }
199 
206  {
207  return latency_budget_;
208  }
209 
217  {
218  latency_budget_ = latency_budget;
219  }
220 
227  {
228  return liveliness_;
229  }
230 
237  {
238  return liveliness_;
239  }
240 
248  {
249  liveliness_ = liveliness;
250  }
251 
258  {
259  return reliability_;
260  }
261 
268  {
269  return reliability_;
270  }
271 
279  {
280  reliability_ = reliability;
281  }
282 
289  {
290  return destination_order_;
291  }
292 
299  {
300  return destination_order_;
301  }
302 
310  {
311  destination_order_ = destination_order;
312  }
313 
319  const HistoryQosPolicy& history() const
320  {
321  return history_;
322  }
323 
330  {
331  return history_;
332  }
333 
339  void history(
340  const HistoryQosPolicy& history)
341  {
342  history_ = history;
343  }
344 
351  {
352  return resource_limits_;
353  }
354 
361  {
362  return resource_limits_;
363  }
364 
372  {
373  resource_limits_ = resource_limits;
374  }
375 
382  {
383  return transport_priority_;
384  }
385 
392  {
393  return transport_priority_;
394  }
395 
403  {
404  transport_priority_ = transport_priority;
405  }
406 
413  {
414  return lifespan_;
415  }
416 
423  {
424  return lifespan_;
425  }
426 
432  void lifespan(
434  {
435  lifespan_ = lifespan;
436  }
437 
444  {
445  return ownership_;
446  }
447 
454  {
455  return ownership_;
456  }
457 
463  void ownership(
465  {
466  ownership_ = ownership;
467  }
468 
475  {
476  return representation_;
477  }
478 
485  {
486  return representation_;
487  }
488 
496  {
497  representation_ = representation;
498  }
499 
500 private:
501 
503  TopicDataQosPolicy topic_data_;
504 
506  DurabilityQosPolicy durability_;
507 
509  DurabilityServiceQosPolicy durability_service_;
510 
512  DeadlineQosPolicy deadline_;
513 
515  LatencyBudgetQosPolicy latency_budget_;
516 
518  LivelinessQosPolicy liveliness_;
519 
521  ReliabilityQosPolicy reliability_;
522 
524  DestinationOrderQosPolicy destination_order_;
525 
527  HistoryQosPolicy history_;
528 
530  ResourceLimitsQosPolicy resource_limits_;
531 
533  TransportPriorityQosPolicy transport_priority_;
534 
536  LifespanQosPolicy lifespan_;
537 
539  OwnershipQosPolicy ownership_;
540 
542  DataRepresentationQosPolicy representation_;
543 };
544 
545 FASTDDS_EXPORTED_API extern const TopicQos TOPIC_QOS_DEFAULT;
546 
547 } // namespace dds
548 } // namespace fastdds
549 } // namespace eprosima
550 
551 #endif // FASTDDS_DDS_TOPIC_QOS__TOPICQOS_HPP
With multiple standard data Representations available, and vendor-specific extensions possible,...
Definition: QosPolicies.hpp:2070
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
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 behavior of the Service in the case where the value of a sample changes (one or more ti...
Definition: QosPolicies.hpp:1651
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
Indicates the reliability of the endpoint.
Definition: QosPolicies.hpp:570
Specifies the resources that the Service can consume in order to meet the requested QoS.
Definition: QosPolicies.hpp:1703
Class TopicQos, containing all the possible Qos that can be set for a determined Topic.
Definition: TopicQos.hpp:40
const DestinationOrderQosPolicy & destination_order() const
Getter for DestinationOrderQosPolicy.
Definition: TopicQos.hpp:288
void deadline(const DeadlineQosPolicy &deadline)
Setter for DeadlineQosPolicy.
Definition: TopicQos.hpp:184
const DurabilityServiceQosPolicy & durability_service() const
Getter for DurabilityServiceQosPolicy.
Definition: TopicQos.hpp:133
DestinationOrderQosPolicy & destination_order()
Getter for DestinationOrderQosPolicy.
Definition: TopicQos.hpp:298
HistoryQosPolicy & history()
Getter for HistoryQosPolicy.
Definition: TopicQos.hpp:329
OwnershipQosPolicy & ownership()
Getter for OwnershipQosPolicy.
Definition: TopicQos.hpp:453
DurabilityServiceQosPolicy & durability_service()
Getter for DurabilityServiceQosPolicy.
Definition: TopicQos.hpp:143
const DataRepresentationQosPolicy & representation() const
Getter for DataRepresentationQosPolicy.
Definition: TopicQos.hpp:474
const LifespanQosPolicy & lifespan() const
Getter for LifespanQosPolicy.
Definition: TopicQos.hpp:412
DeadlineQosPolicy & deadline()
Getter for DeadlineQosPolicy.
Definition: TopicQos.hpp:174
const ReliabilityQosPolicy & reliability() const
Getter for ReliabilityQosPolicy.
Definition: TopicQos.hpp:257
void transport_priority(const TransportPriorityQosPolicy &transport_priority)
Setter for TransportPriorityQosPolicy.
Definition: TopicQos.hpp:401
void durability_service(const DurabilityServiceQosPolicy &durability_service)
Setter for DurabilityServiceQosPolicy.
Definition: TopicQos.hpp:153
const TopicDataQosPolicy & topic_data() const
Getter for TopicDataQosPolicy.
Definition: TopicQos.hpp:71
void latency_budget(const LatencyBudgetQosPolicy &latency_budget)
Setter for LatencyBudgetQosPolicy.
Definition: TopicQos.hpp:215
void history(const HistoryQosPolicy &history)
Setter for HistoryQosPolicy.
Definition: TopicQos.hpp:339
DataRepresentationQosPolicy & representation()
Getter for DataRepresentationQosPolicy.
Definition: TopicQos.hpp:484
const TransportPriorityQosPolicy & transport_priority() const
Getter for TransportPriorityQosPolicy.
Definition: TopicQos.hpp:381
const HistoryQosPolicy & history() const
Getter for HistoryQosPolicy.
Definition: TopicQos.hpp:319
const ResourceLimitsQosPolicy & resource_limits() const
Getter for ResourceLimitsQosPolicy.
Definition: TopicQos.hpp:350
void ownership(const OwnershipQosPolicy &ownership)
Setter for OwnershipQosPolicy.
Definition: TopicQos.hpp:463
LatencyBudgetQosPolicy & latency_budget()
Getter for LatencyBudgetQosPolicy.
Definition: TopicQos.hpp:205
const DurabilityQosPolicy & durability() const
Getter for DurabilityQosPolicy.
Definition: TopicQos.hpp:102
const DeadlineQosPolicy & deadline() const
Getter for DeadlineQosPolicy.
Definition: TopicQos.hpp:164
LifespanQosPolicy & lifespan()
Getter for LifespanQosPolicy.
Definition: TopicQos.hpp:422
void topic_data(const TopicDataQosPolicy &value)
Setter for TopicDataQosPolicy.
Definition: TopicQos.hpp:91
void lifespan(const LifespanQosPolicy &lifespan)
Setter for LifespanQosPolicy.
Definition: TopicQos.hpp:432
void destination_order(const DestinationOrderQosPolicy &destination_order)
Setter for DestinationOrderQosPolicy.
Definition: TopicQos.hpp:308
FASTDDS_EXPORTED_API TopicQos()
Constructor.
void resource_limits(const ResourceLimitsQosPolicy &resource_limits)
Setter for ResourceLimitsQosPolicy.
Definition: TopicQos.hpp:370
const LivelinessQosPolicy & liveliness() const
Getter for LivelinessQosPolicy.
Definition: TopicQos.hpp:226
const OwnershipQosPolicy & ownership() const
Getter for OwnershipQosPolicy.
Definition: TopicQos.hpp:443
void representation(const DataRepresentationQosPolicy &representation)
Setter for DataRepresentationQosPolicy.
Definition: TopicQos.hpp:494
const LatencyBudgetQosPolicy & latency_budget() const
Getter for LatencyBudgetQosPolicy.
Definition: TopicQos.hpp:195
void liveliness(const LivelinessQosPolicy &liveliness)
Setter for LivelinessQosPolicy.
Definition: TopicQos.hpp:246
ResourceLimitsQosPolicy & resource_limits()
Getter for ResourceLimitsQosPolicy.
Definition: TopicQos.hpp:360
DurabilityQosPolicy & durability()
Getter for DurabilityQosPolicy.
Definition: TopicQos.hpp:112
ReliabilityQosPolicy & reliability()
Getter for ReliabilityQosPolicy.
Definition: TopicQos.hpp:267
LivelinessQosPolicy & liveliness()
Getter for LivelinessQosPolicy.
Definition: TopicQos.hpp:236
void durability(const DurabilityQosPolicy &durability)
Setter for DurabilityQosPolicy.
Definition: TopicQos.hpp:122
TransportPriorityQosPolicy & transport_priority()
Getter for TransportPriorityQosPolicy.
Definition: TopicQos.hpp:391
bool operator==(const TopicQos &b) const
Definition: TopicQos.hpp:48
void reliability(const ReliabilityQosPolicy &reliability)
Setter for ReliabilityQosPolicy.
Definition: TopicQos.hpp:277
TopicDataQosPolicy & topic_data()
Getter for TopicDataQosPolicy.
Definition: TopicQos.hpp:81
This policy is a hint to the infrastructure as to how to set the priority of the underlying transport...
Definition: QosPolicies.hpp:1968
Definition: DomainParticipant.hpp:46
FASTDDS_EXPORTED_API const TopicQos TOPIC_QOS_DEFAULT