Coverage Report

Created: 2025-06-13 06:46

/src/Fast-DDS/include/fastdds/rtps/builtin/data/SubscriptionBuiltinTopicData.hpp
Line
Count
Source (jump to first uncovered line)
1
// Copyright 2024 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 SubscriptionBuiltinTopicData.hpp
17
 */
18
19
#ifndef FASTDDS_RTPS_BUILTIN_DATA__SUBSCRIPTIONBUILTINTOPICDATA_HPP
20
#define FASTDDS_RTPS_BUILTIN_DATA__SUBSCRIPTIONBUILTINTOPICDATA_HPP
21
22
#include <fastcdr/cdr/fixed_size_string.hpp>
23
#include <fastcdr/xcdr/optional.hpp>
24
25
#include <fastdds/dds/core/policy/QosPolicies.hpp>
26
#include <fastdds/dds/core/policy/ReaderDataLifecycleQosPolicy.hpp>
27
#include <fastdds/dds/core/policy/ReaderResourceLimitsQos.hpp>
28
#include <fastdds/dds/core/policy/RTPSReliableReaderQos.hpp>
29
#include <fastdds/rtps/attributes/RTPSParticipantAllocationAttributes.hpp>
30
#include <fastdds/rtps/builtin/data/BuiltinTopicKey.hpp>
31
#include <fastdds/rtps/builtin/data/ContentFilterProperty.hpp>
32
#include <fastdds/rtps/common/Guid.hpp>
33
#include <fastdds/rtps/common/RemoteLocators.hpp>
34
#include <fastdds/rtps/common/Types.hpp>
35
36
namespace eprosima {
37
namespace fastdds {
38
namespace dds {
39
40
class ReaderQos;
41
42
} // namespace dds
43
namespace rtps {
44
45
/// Structure SubscriptionBuiltinTopicData, contains the information on a discovered subscription.
46
struct SubscriptionBuiltinTopicData
47
{
48
0
    FASTDDS_EXPORTED_API SubscriptionBuiltinTopicData() = default;
49
50
    FASTDDS_EXPORTED_API SubscriptionBuiltinTopicData(
51
            const size_t max_unicast_locators,
52
            const size_t max_multicast_locators,
53
            const VariableLengthDataLimits& data_limits,
54
            const fastdds::rtps::ContentFilterProperty::AllocationConfiguration& content_filter_limits);
55
56
    /// Builtin topic Key
57
    BuiltinTopicKey_t key{{0, 0, 0}};
58
59
    /// Builtin participant topic Key
60
    BuiltinTopicKey_t participant_key{{0, 0, 0}};
61
62
    /// Topic name
63
    fastcdr::string_255 topic_name;
64
65
    /// Type name
66
    fastcdr::string_255 type_name;
67
68
    /// Topic kind
69
    TopicKind_t topic_kind = TopicKind_t::NO_KEY;
70
71
    // DataReader Qos
72
73
    /// Durability Qos, implemented in the library.
74
    dds::DurabilityQosPolicy durability;
75
76
    /// Deadline Qos, implemented in the library.
77
    dds::DeadlineQosPolicy deadline;
78
79
    /// Latency Budget Qos, NOT implemented in the library.
80
    dds::LatencyBudgetQosPolicy latency_budget;
81
82
    /// Lifespan Qos, implemented in the library.
83
    dds::LifespanQosPolicy lifespan;
84
85
    /// Liveliness Qos, implemented in the library.
86
    dds::LivelinessQosPolicy liveliness;
87
88
    /// Reliability Qos, implemented in the library.
89
    dds::ReliabilityQosPolicy reliability;
90
91
    /// Ownership Qos, implemented in the library.
92
    dds::OwnershipQosPolicy ownership;
93
94
    /// Destination Order Qos, NOT implemented in the library.
95
    dds::DestinationOrderQosPolicy destination_order;
96
97
    /// User Data Qos, implemented in the library.
98
    dds::UserDataQosPolicy user_data;
99
100
    /// Time Based Filter Qos, NOT implemented in the library.
101
    dds::TimeBasedFilterQosPolicy time_based_filter;
102
103
    // Subscriber Qos
104
105
    /// Presentation Qos, NOT implemented in the library.
106
    dds::PresentationQosPolicy presentation;
107
108
    /// Partition Qos, implemented in the library.
109
    dds::PartitionQosPolicy partition;
110
111
    /// Topic Data Qos, NOT implemented in the library.
112
    dds::TopicDataQosPolicy topic_data;
113
114
    /// Group Data Qos, implemented in the library.
115
    dds::GroupDataQosPolicy group_data;
116
117
    // X-Types 1.3
118
119
    /// Type information
120
    dds::xtypes::TypeInformationParameter type_information;
121
122
    /// Data representation
123
    dds::DataRepresentationQosPolicy representation;
124
125
    /// Type consistency enforcement Qos, NOT implemented in the library.
126
    dds::TypeConsistencyEnforcementQosPolicy type_consistency;
127
128
    // eProsima Extensions
129
130
    /// Content filter configuration
131
    ContentFilterProperty content_filter{ ContentFilterProperty::AllocationConfiguration{} };
132
133
    /// Disable positive acks, implemented in the library.
134
    dds::DisablePositiveACKsQosPolicy disable_positive_acks;
135
136
    /// Information for data sharing compatibility check.
137
    dds::DataSharingQosPolicy data_sharing;
138
139
    /// History Qos, kind and depth
140
    fastcdr::optional<dds::HistoryQosPolicy> history;
141
142
    /// Resource limits Qos
143
    fastcdr::optional<dds::ResourceLimitsQosPolicy> resource_limits;
144
145
    /// Reader data lifecycle Qos
146
    fastcdr::optional<dds::ReaderDataLifecycleQosPolicy> reader_data_lifecycle;
147
148
    /// Reliable reader qos policy
149
    fastcdr::optional<dds::RTPSReliableReaderQos> rtps_reliable_reader;
150
151
    /// Endpoint qos policy
152
    fastcdr::optional<dds::RTPSEndpointQos> endpoint;
153
154
    /// Reader resource limits
155
    fastcdr::optional<dds::ReaderResourceLimitsQos> reader_resource_limits;
156
157
    /// GUID
158
    GUID_t guid;
159
160
    /// Participant GUID
161
    GUID_t participant_guid;
162
163
    /// Remote locators
164
    RemoteLocatorList remote_locators;
165
166
    /// Network configuration
167
    NetworkConfigSet_t loopback_transformation{};
168
169
    /// Expects Inline Qos
170
    bool expects_inline_qos = false;
171
172
    /// Property list
173
    ParameterPropertyList_t properties;
174
};
175
176
}   // namespace rtps
177
}   // namespace fastdds
178
}   // namespace eprosima
179
180
#endif // FASTDDS_RTPS_BUILTIN_DATA__SUBSCRIPTIONBUILTINTOPICDATA_HPP