Fast DDS  Version 3.6.1.0
Fast DDS
WriterAttributes.hpp
1 // Copyright 2016 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_ATTRIBUTES__WRITERATTRIBUTES_HPP
20 #define FASTDDS_RTPS_ATTRIBUTES__WRITERATTRIBUTES_HPP
21 
22 #include <cstdint>
23 #include <functional>
24 #include <string>
25 
26 #include <fastdds/dds/core/policy/QosPolicies.hpp>
27 #include <fastdds/rtps/attributes/EndpointAttributes.hpp>
28 #include <fastdds/rtps/common/Guid.hpp>
29 #include <fastdds/rtps/common/Time_t.hpp>
30 #include <fastdds/rtps/common/Types.hpp>
31 #include <fastdds/rtps/flowcontrol/FlowControllerConsts.hpp>
32 #include <fastdds/utils/collections/ResourceLimitedContainerConfig.hpp>
33 
34 namespace eprosima {
35 namespace fastdds {
36 namespace rtps {
37 
39 {
43 
44 
50 {
52  const WriterTimes& b) const
53  {
58  }
59 
65  dds::Duration_t nack_response_delay {0, 5 * 1000 * 1000};
68 
69 };
70 
76 {
77 public:
78 
80  : liveliness_kind(fastdds::dds::LivelinessQosPolicyKind::AUTOMATIC_LIVELINESS_QOS)
81  , liveliness_lease_duration(TIME_T_INFINITE_SECONDS, TIME_T_INFINITE_NANOSECONDS)
82  , liveliness_announcement_period(TIME_T_INFINITE_SECONDS, TIME_T_INFINITE_NANOSECONDS)
85  , disable_positive_acks(false)
86  , keep_duration(TIME_T_INFINITE_SECONDS, TIME_T_INFINITE_NANOSECONDS)
87  {
91  }
92 
94  {
95  }
96 
99 
102 
105 
108 
111 
114 
117 
120 
123 
126 
129 
131  bool separate_sending = false;
132 
134  int32_t transport_priority = 0;
135 };
136 
137 } // namespace rtps
138 } // namespace fastdds
139 } // namespace eprosima
140 
141 #endif // FASTDDS_RTPS_ATTRIBUTES__WRITERATTRIBUTES_HPP
Structure EndpointAttributes, describing the attributes associated with an RTPS Endpoint.
Definition: EndpointAttributes.hpp:40
ReliabilityKind_t reliabilityKind
Reliability kind, default value BEST_EFFORT.
Definition: EndpointAttributes.hpp:50
EndpointKind_t endpointKind
Endpoint kind, default value WRITER.
Definition: EndpointAttributes.hpp:44
DurabilityKind_t durabilityKind
Durability kind, default value VOLATILE.
Definition: EndpointAttributes.hpp:53
Class WriterAttributes, defining the attributes of a RTPSWriter.
Definition: WriterAttributes.hpp:76
WriterTimes times
Writer Times (only used for RELIABLE).
Definition: WriterAttributes.hpp:101
EndpointAttributes endpoint
Attributes of the associated endpoint.
Definition: WriterAttributes.hpp:98
WriterAttributes()
Definition: WriterAttributes.hpp:79
dds::Duration_t keep_duration
Keep duration to keep a sample before considering it has been acked.
Definition: WriterAttributes.hpp:125
std::string flow_controller_name
Flow controller name. Default: fastdds::rtps::FASTDDS_FLOW_CONTROLLER_DEFAULT.
Definition: WriterAttributes.hpp:128
ResourceLimitedContainerConfig matched_readers_allocation
Define the allocation behaviour for matched-reader-dependent collections.
Definition: WriterAttributes.hpp:119
bool disable_positive_acks
Disable the sending of positive ACKs.
Definition: WriterAttributes.hpp:122
RTPSWriterPublishMode mode
Indicates if the Writer is synchronous or asynchronous.
Definition: WriterAttributes.hpp:113
virtual ~WriterAttributes()
Definition: WriterAttributes.hpp:93
dds::Duration_t liveliness_announcement_period
Liveliness announcement period.
Definition: WriterAttributes.hpp:110
bool disable_heartbeat_piggyback
Disable the sending of heartbeat piggybacks.
Definition: WriterAttributes.hpp:116
fastdds::dds::LivelinessQosPolicyKind liveliness_kind
Liveliness kind.
Definition: WriterAttributes.hpp:104
bool separate_sending
Whether to send data to each matched reader separately.
Definition: WriterAttributes.hpp:131
int32_t transport_priority
Transport priority for this Writer.
Definition: WriterAttributes.hpp:134
dds::Duration_t liveliness_lease_duration
Liveliness lease duration.
Definition: WriterAttributes.hpp:107
Definition: DomainParticipant.hpp:46
LivelinessQosPolicyKind
Enum LivelinessQosPolicyKind, different kinds of liveliness for LivelinessQosPolicy.
Definition: QosPolicies.hpp:458
FASTDDS_EXPORTED_API const char *const FASTDDS_FLOW_CONTROLLER_DEFAULT
Name of the default flow controller.
@ RELIABLE
Definition: Types.hpp:50
@ WRITER
Definition: Types.hpp:67
uint8_t octet
Definition: Types.hpp:83
RTPSWriterPublishMode
Definition: WriterAttributes.hpp:39
@ ASYNCHRONOUS_WRITER
Definition: WriterAttributes.hpp:41
@ SYNCHRONOUS_WRITER
Definition: WriterAttributes.hpp:40
@ TRANSIENT_LOCAL
Transient Local Durability.
Definition: Types.hpp:58
Specifies the configuration of a resource limited collection.
Definition: ResourceLimitedContainerConfig.hpp:36
Structure Time_t, used to describe times at a DDS level.
Definition: Time_t.hpp:36
Struct WriterTimes, defining the times associated with the Reliable Writers events.
Definition: WriterAttributes.hpp:50
bool operator==(const WriterTimes &b) const
Definition: WriterAttributes.hpp:51
dds::Duration_t initial_heartbeat_delay
Initial heartbeat delay. Default value 12ms.
Definition: WriterAttributes.hpp:61
dds::Duration_t nack_supression_duration
This time allows the RTPSWriter to ignore nack messages too soon after the data as sent,...
Definition: WriterAttributes.hpp:67
dds::Duration_t heartbeat_period
Periodic HB period, default value 3s.
Definition: WriterAttributes.hpp:63
dds::Duration_t nack_response_delay
Delay to apply to the response of a ACKNACK message, default value 5ms.
Definition: WriterAttributes.hpp:65