-
Notifications
You must be signed in to change notification settings - Fork 795
/
Copy pathReaderQos.hpp
159 lines (126 loc) · 5.17 KB
/
ReaderQos.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
// Copyright 2016 Proyectos y Sistemas de Mantenimiento SL (eProsima).
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
/**
* @file ReaderQos.hpp
*
*/
#ifndef FASTDDS_DDS_SUBSCRIBER_QOS__READERQOS_HPP
#define FASTDDS_DDS_SUBSCRIBER_QOS__READERQOS_HPP
#include <fastdds/dds/core/policy/QosPolicies.hpp>
namespace eprosima {
namespace fastdds {
namespace dds {
/**
* Class ReaderQos, contains all the possible Qos that can be set for a determined Subscriber.
* Although these values can be set and are transmitted
* during the Endpoint Discovery Protocol, not all of the behaviour associated with them has been implemented in the library.
* Please consult each of them to check for implementation details and default values.
* @ingroup FASTDDS_QOS_MODULE
*/
class ReaderQos
{
public:
FASTDDS_EXPORTED_API ReaderQos()
{
}
FASTDDS_EXPORTED_API virtual ~ReaderQos()
{
}
bool operator ==(
const ReaderQos& b) const
{
return (m_durability == b.m_durability) &&
(m_deadline == b.m_deadline) &&
(m_latencyBudget == b.m_latencyBudget) &&
(m_liveliness == b.m_liveliness) &&
(m_reliability == b.m_reliability) &&
(m_ownership == b.m_ownership) &&
(m_destinationOrder == b.m_destinationOrder) &&
(m_userData == b.m_userData) &&
(m_timeBasedFilter == b.m_timeBasedFilter) &&
(m_presentation == b.m_presentation) &&
(m_partition == b.m_partition) &&
(m_topicData == b.m_topicData) &&
(m_groupData == b.m_groupData) &&
(m_durabilityService == b.m_durabilityService) &&
(m_lifespan == b.m_lifespan) &&
(m_disablePositiveACKs == b.m_disablePositiveACKs) &&
(type_consistency == b.type_consistency) &&
(representation == b.representation) &&
(data_sharing == b.data_sharing);
}
//!Durability Qos, implemented in the library.
DurabilityQosPolicy m_durability;
//!Deadline Qos, implemented in the library.
DeadlineQosPolicy m_deadline;
//!Latency Budget Qos, NOT implemented in the library.
LatencyBudgetQosPolicy m_latencyBudget;
//!Liveliness Qos, implemented in the library.
LivelinessQosPolicy m_liveliness;
//!ReliabilityQos, implemented in the library.
ReliabilityQosPolicy m_reliability;
//!Ownership Qos, implemented in the library.
OwnershipQosPolicy m_ownership;
//!Destinatio Order Qos, NOT implemented in the library.
DestinationOrderQosPolicy m_destinationOrder;
//!UserData Qos, NOT implemented in the library.
UserDataQosPolicy m_userData;
//!Time Based Filter Qos, NOT implemented in the library.
TimeBasedFilterQosPolicy m_timeBasedFilter;
//!Presentation Qos, NOT implemented in the library.
PresentationQosPolicy m_presentation;
//!Partition Qos, implemented in the library.
PartitionQosPolicy m_partition;
//!Topic Data Qos, NOT implemented in the library.
TopicDataQosPolicy m_topicData;
//!GroupData Qos, NOT implemented in the library.
GroupDataQosPolicy m_groupData;
//!Durability Service Qos, NOT implemented in the library.
DurabilityServiceQosPolicy m_durabilityService;
//!Lifespan Qos, NOT implemented in the library.
LifespanQosPolicy m_lifespan;
//!Data Representation Qos, implemented in the library.
DataRepresentationQosPolicy representation;
//!Type consistency enforcement Qos, NOT implemented in the library.
TypeConsistencyEnforcementQosPolicy type_consistency;
//!Disable positive ACKs QoS
DisablePositiveACKsQosPolicy m_disablePositiveACKs;
//!Information for data sharing compatibility check.
DataSharingQosPolicy data_sharing;
/**
* Set Qos from another class
* @param readerqos Reference from a ReaderQos object.
* @param first_time Boolean indicating whether is the first time (If not some parameters cannot be set).
*/
FASTDDS_EXPORTED_API void setQos(
const ReaderQos& readerqos,
bool first_time);
/**
* Check if the Qos values are compatible between each other.
* @return True if correct.
*/
FASTDDS_EXPORTED_API bool checkQos() const;
/**
* Check if the Qos can be update with the values provided. This method DOES NOT update anything.
* @param qos Reference to the new qos.
* @return True if they can be updated.
*/
FASTDDS_EXPORTED_API bool canQosBeUpdated(
const ReaderQos& qos) const;
void clear();
};
} //namespace dds
} //namespace fastdds
} //namespace eprosima
#endif // FASTDDS_DDS_SUBSCRIBER_QOS__READERQOS_HPP