/src/Fast-DDS/include/fastdds/dds/subscriber/qos/ReaderQos.hpp
Line | Count | Source (jump to first uncovered line) |
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 | | |
15 | | /** |
16 | | * @file ReaderQos.hpp |
17 | | * |
18 | | */ |
19 | | |
20 | | #ifndef _FASTDDS_DDS_QOS_READERQOS_HPP_ |
21 | | #define _FASTDDS_DDS_QOS_READERQOS_HPP_ |
22 | | |
23 | | #include <fastdds/dds/core/policy/QosPolicies.hpp> |
24 | | |
25 | | namespace eprosima { |
26 | | namespace fastdds { |
27 | | namespace dds { |
28 | | |
29 | | /** |
30 | | * Class ReaderQos, contains all the possible Qos that can be set for a determined Subscriber. |
31 | | * Although these values can be set and are transmitted |
32 | | * during the Endpoint Discovery Protocol, not all of the behaviour associated with them has been implemented in the library. |
33 | | * Please consult each of them to check for implementation details and default values. |
34 | | * @ingroup FASTRTPS_ATTRIBUTES_MODULE |
35 | | */ |
36 | | class ReaderQos |
37 | | { |
38 | | public: |
39 | | |
40 | | RTPS_DllAPI ReaderQos() |
41 | 40.0k | { |
42 | 40.0k | } |
43 | | |
44 | | RTPS_DllAPI virtual ~ReaderQos() |
45 | 38.3k | { |
46 | 38.3k | } |
47 | | |
48 | | bool operator ==( |
49 | | const ReaderQos& b) const |
50 | 0 | { |
51 | 0 | return (m_durability == b.m_durability) && |
52 | 0 | (m_deadline == b.m_deadline) && |
53 | 0 | (m_latencyBudget == b.m_latencyBudget) && |
54 | 0 | (m_liveliness == b.m_liveliness) && |
55 | 0 | (m_reliability == b.m_reliability) && |
56 | 0 | (m_ownership == b.m_ownership) && |
57 | 0 | (m_destinationOrder == b.m_destinationOrder) && |
58 | 0 | (m_userData == b.m_userData) && |
59 | 0 | (m_timeBasedFilter == b.m_timeBasedFilter) && |
60 | 0 | (m_presentation == b.m_presentation) && |
61 | 0 | (m_partition == b.m_partition) && |
62 | 0 | (m_topicData == b.m_topicData) && |
63 | 0 | (m_groupData == b.m_groupData) && |
64 | 0 | (m_durabilityService == b.m_durabilityService) && |
65 | 0 | (m_lifespan == b.m_lifespan) && |
66 | 0 | (m_disablePositiveACKs == b.m_disablePositiveACKs) && |
67 | 0 | (type_consistency == b.type_consistency) && |
68 | 0 | (representation == b.representation) && |
69 | 0 | (data_sharing == b.data_sharing); |
70 | 0 | } |
71 | | |
72 | | //!Durability Qos, implemented in the library. |
73 | | DurabilityQosPolicy m_durability; |
74 | | |
75 | | //!Deadline Qos, implemented in the library. |
76 | | DeadlineQosPolicy m_deadline; |
77 | | |
78 | | //!Latency Budget Qos, NOT implemented in the library. |
79 | | LatencyBudgetQosPolicy m_latencyBudget; |
80 | | |
81 | | //!Liveliness Qos, implemented in the library. |
82 | | LivelinessQosPolicy m_liveliness; |
83 | | |
84 | | //!ReliabilityQos, implemented in the library. |
85 | | ReliabilityQosPolicy m_reliability; |
86 | | |
87 | | //!Ownership Qos, NOT implemented in the library. |
88 | | OwnershipQosPolicy m_ownership; |
89 | | |
90 | | //!Destinatio Order Qos, NOT implemented in the library. |
91 | | DestinationOrderQosPolicy m_destinationOrder; |
92 | | |
93 | | //!UserData Qos, NOT implemented in the library. |
94 | | UserDataQosPolicy m_userData; |
95 | | |
96 | | //!Time Based Filter Qos, NOT implemented in the library. |
97 | | TimeBasedFilterQosPolicy m_timeBasedFilter; |
98 | | |
99 | | //!Presentation Qos, NOT implemented in the library. |
100 | | PresentationQosPolicy m_presentation; |
101 | | |
102 | | //!Partition Qos, implemented in the library. |
103 | | PartitionQosPolicy m_partition; |
104 | | |
105 | | //!Topic Data Qos, NOT implemented in the library. |
106 | | TopicDataQosPolicy m_topicData; |
107 | | |
108 | | //!GroupData Qos, NOT implemented in the library. |
109 | | GroupDataQosPolicy m_groupData; |
110 | | |
111 | | //!Durability Service Qos, NOT implemented in the library. |
112 | | DurabilityServiceQosPolicy m_durabilityService; |
113 | | |
114 | | //!Lifespan Qos, NOT implemented in the library. |
115 | | LifespanQosPolicy m_lifespan; |
116 | | |
117 | | //!Data Representation Qos, implemented in the library. |
118 | | DataRepresentationQosPolicy representation; |
119 | | |
120 | | //!Type consistency enforcement Qos, NOT implemented in the library. |
121 | | TypeConsistencyEnforcementQosPolicy type_consistency; |
122 | | |
123 | | //!Disable positive ACKs QoS |
124 | | DisablePositiveACKsQosPolicy m_disablePositiveACKs; |
125 | | |
126 | | //!Information for data sharing compatibility check. |
127 | | DataSharingQosPolicy data_sharing; |
128 | | |
129 | | /** |
130 | | * Set Qos from another class |
131 | | * @param readerqos Reference from a ReaderQos object. |
132 | | * @param first_time Boolean indicating whether is the first time (If not some parameters cannot be set). |
133 | | */ |
134 | | RTPS_DllAPI void setQos( |
135 | | const ReaderQos& readerqos, |
136 | | bool first_time); |
137 | | |
138 | | /** |
139 | | * Check if the Qos values are compatible between each other. |
140 | | * @return True if correct. |
141 | | */ |
142 | | RTPS_DllAPI bool checkQos() const; |
143 | | |
144 | | /** |
145 | | * Check if the Qos can be update with the values provided. This method DOES NOT update anything. |
146 | | * @param qos Reference to the new qos. |
147 | | * @return True if they can be updated. |
148 | | */ |
149 | | RTPS_DllAPI bool canQosBeUpdated( |
150 | | const ReaderQos& qos) const; |
151 | | |
152 | | void clear(); |
153 | | }; |
154 | | |
155 | | } //namespace dds |
156 | | } //namespace fastdds |
157 | | } //namespace eprosima |
158 | | |
159 | | #endif // _FASTDDS_DDS_QOS_READERQOS_HPP_ |