Fast DDS  Version 3.0.1
Fast DDS
Loading...
Searching...
No Matches
EndpointAttributes.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__ENDPOINTATTRIBUTES_HPP
20#define FASTDDS_RTPS_ATTRIBUTES__ENDPOINTATTRIBUTES_HPP
21
22#include <fastdds/dds/core/policy/QosPolicies.hpp>
23#include <fastdds/rtps/attributes/ExternalLocators.hpp>
24#include <fastdds/rtps/attributes/PropertyPolicy.hpp>
25#include <fastdds/rtps/common/Guid.hpp>
26#include <fastdds/rtps/common/LocatorList.hpp>
27#include <fastdds/rtps/common/Types.hpp>
28#if HAVE_SECURITY
29#include <fastdds/rtps/attributes/EndpointSecurityAttributes.hpp>
30#endif // if HAVE_SECURITY
31namespace eprosima {
32namespace fastdds {
33namespace rtps {
34
40{
41public:
42
44 EndpointKind_t endpointKind = EndpointKind_t::WRITER;
45
47 TopicKind_t topicKind = TopicKind_t::NO_KEY;
48
50 ReliabilityKind_t reliabilityKind = ReliabilityKind_t::BEST_EFFORT;
51
53 DurabilityKind_t durabilityKind = DurabilityKind_t::VOLATILE;
54
57
60
63
66
69
72
75
78
80 {
81 datasharing_.off();
82 }
83
84 virtual ~EndpointAttributes() = default;
85
90 inline int16_t getUserDefinedID() const
91 {
92 return m_userDefinedID;
93 }
94
99 inline int16_t getEntityID() const
100 {
101 return m_entityID;
102 }
103
108 inline void setUserDefinedID(
109 int16_t id)
110 {
111 m_userDefinedID = id;
112 }
113
118 inline void setEntityID(
119 int16_t id)
120 {
121 m_entityID = id;
122 }
123
130 {
131 datasharing_ = cfg;
132 }
133
139 {
140 return datasharing_;
141 }
142
143#if HAVE_SECURITY
144 const security::EndpointSecurityAttributes& security_attributes() const
145 {
146 return security_attributes_;
147 }
148
149 security::EndpointSecurityAttributes& security_attributes()
150 {
151 return security_attributes_;
152 }
153
154#endif // HAVE_SECURITY
155
156private:
157
159 int16_t m_userDefinedID = -1;
160
162 int16_t m_entityID = -1;
163
164#if HAVE_SECURITY
166 security::EndpointSecurityAttributes security_attributes_;
167#endif // HAVE_SECURITY
168
171};
172
173} // namespace rtps
174} // namespace fastdds
175} // namespace eprosima
176
177#endif // FASTDDS_RTPS_ATTRIBUTES__ENDPOINTATTRIBUTES_HPP
Qos Policy to configure the data sharing.
Definition QosPolicies.hpp:2890
FASTDDS_EXPORTED_API void off()
Configures the DataSharing in disabled mode.
Definition QosPolicies.hpp:3099
Structure EndpointAttributes, describing the attributes associated with an RTPS Endpoint.
Definition EndpointAttributes.hpp:40
LocatorList_t unicastLocatorList
Unicast locator list.
Definition EndpointAttributes.hpp:65
ExternalLocators external_unicast_locators
The collection of external locators to use for communication.
Definition EndpointAttributes.hpp:59
GUID_t persistence_guid
GUID used for persistence.
Definition EndpointAttributes.hpp:56
const fastdds::dds::DataSharingQosPolicy & data_sharing_configuration() const
Get the DataSharing configuration.
Definition EndpointAttributes.hpp:138
PropertyPolicy properties
Properties.
Definition EndpointAttributes.hpp:74
ReliabilityKind_t reliabilityKind
Reliability kind, default value BEST_EFFORT.
Definition EndpointAttributes.hpp:50
fastdds::dds::OwnershipQosPolicyKind ownershipKind
Ownership.
Definition EndpointAttributes.hpp:77
bool ignore_non_matching_locators
Whether locators that don't match with the announced locators should be kept.
Definition EndpointAttributes.hpp:62
EndpointKind_t endpointKind
Endpoint kind, default value WRITER.
Definition EndpointAttributes.hpp:44
LocatorList_t remoteLocatorList
Remote locator list.
Definition EndpointAttributes.hpp:71
EndpointAttributes()
Definition EndpointAttributes.hpp:79
int16_t getEntityID() const
Get the entity defined ID.
Definition EndpointAttributes.hpp:99
TopicKind_t topicKind
Topic kind, default value NO_KEY.
Definition EndpointAttributes.hpp:47
int16_t getUserDefinedID() const
Get the user defined ID.
Definition EndpointAttributes.hpp:90
void setUserDefinedID(int16_t id)
Set the user defined ID.
Definition EndpointAttributes.hpp:108
void setEntityID(int16_t id)
Set the entity ID.
Definition EndpointAttributes.hpp:118
DurabilityKind_t durabilityKind
Durability kind, default value VOLATILE.
Definition EndpointAttributes.hpp:53
void set_data_sharing_configuration(fastdds::dds::DataSharingQosPolicy cfg)
Set the DataSharing configuration.
Definition EndpointAttributes.hpp:128
LocatorList_t multicastLocatorList
Multicast locator list.
Definition EndpointAttributes.hpp:68
Class LocatorList, a Locator vector that doesn't allow duplicates.
Definition LocatorList.hpp:97
Definition PropertyPolicy.hpp:30
OwnershipQosPolicyKind
Enum OwnershipQosPolicyKind, different kinds of ownership for OwnershipQosPolicy.
Definition QosPolicies.hpp:629
@ SHARED_OWNERSHIP_QOS
Indicates shared ownership for each instance.
Definition QosPolicies.hpp:634
ReliabilityKind_t
Reliability enum used for internal purposes.
Definition Types.hpp:49
EndpointKind_t
Endpoint kind.
Definition Types.hpp:65
TopicKind_t
Topic kind.
Definition Types.hpp:72
std::map< uint8_t, std::map< uint8_t, std::vector< LocatorWithMask > >, std::greater< uint8_t > > ExternalLocators
A collection of LocatorWithMask grouped by externality and cost.
Definition ExternalLocators.hpp:41
DurabilityKind_t
Durability kind.
Definition Types.hpp:56
eProsima namespace.
Structure GUID_t, entity identifier, unique in DDS-RTPS Domain.
Definition Guid.hpp:40
Definition EndpointSecurityAttributes.hpp:75