rmw  master
C API providing a middleware abstraction layer which is used to implement the rest of ROS.
qos_profiles.h
Go to the documentation of this file.
1 // Copyright 2015 Open Source Robotics Foundation, Inc.
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 #ifndef RMW__QOS_PROFILES_H_
16 #define RMW__QOS_PROFILES_H_
17 
18 #ifdef __cplusplus
19 extern "C"
20 {
21 #endif
22 
23 #include "rmw/types.h"
24 
25 static const rmw_qos_profile_t rmw_qos_profile_sensor_data =
26 {
28  5,
35  false
36 };
37 
38 static const rmw_qos_profile_t rmw_qos_profile_parameters =
39 {
41  1000,
48  false
49 };
50 
51 static const rmw_qos_profile_t rmw_qos_profile_default =
52 {
54  10,
61  false
62 };
63 
64 static const rmw_qos_profile_t rmw_qos_profile_services_default =
65 {
67  10,
74  false
75 };
76 
77 static const rmw_qos_profile_t rmw_qos_profile_parameter_events =
78 {
80  1000,
87  false
88 };
89 
90 static const rmw_qos_profile_t rmw_qos_profile_system_default =
91 {
100  false
101 };
102 
103 static const rmw_qos_profile_t rmw_qos_profile_unknown =
104 {
105  RMW_QOS_POLICY_HISTORY_UNKNOWN,
107  RMW_QOS_POLICY_RELIABILITY_UNKNOWN,
108  RMW_QOS_POLICY_DURABILITY_UNKNOWN,
111  RMW_QOS_POLICY_LIVELINESS_UNKNOWN,
113  false
114 };
115 
117 {
120 
123 
125  RMW_QOS_COMPATIBILITY_ERROR
127 
128 
130 
175 rmw_ret_t
177  const rmw_qos_profile_t publisher_profile,
178  const rmw_qos_profile_t subscription_profile,
179  rmw_qos_compatibility_type_t * compatibility,
180  char * reason,
181  size_t reason_size);
182 
183 #ifdef __cplusplus
184 }
185 #endif
186 
187 #endif // RMW__QOS_PROFILES_H_
RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT
RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT
Implementation specific default.
Definition: types.h:369
RMW_PUBLIC
#define RMW_PUBLIC
Definition: visibility_control.h:48
RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT
RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT
Attempt to deliver samples, but some may be lost if the network is not robust.
Definition: types.h:375
types.h
RMW_PUBLIC_TYPE
RMW_PUBLIC_TYPE
Type mapping of rcutils log severity types to rmw specific types.
Definition: types.h:540
RMW_WARN_UNUSED
#define RMW_WARN_UNUSED
Indicate that a variable is not used, and prevent compiler from issuing warnings.
Definition: macros.h:24
RMW_QOS_COMPATIBILITY_WARNING
RMW_QOS_COMPATIBILITY_WARNING
QoS policies may not be compatible.
Definition: qos_profiles.h:122
rmw_qos_compatibility_type_t
enum RMW_PUBLIC_TYPE rmw_qos_compatibility_type_t rmw_qos_compatibility_type_t
Definition: qos_profiles.h:116
RMW_QOS_POLICY_DEPTH_SYSTEM_DEFAULT
@ RMW_QOS_POLICY_DEPTH_SYSTEM_DEFAULT
Definition: types.h:537
RMW_QOS_DEADLINE_DEFAULT
#define RMW_QOS_DEADLINE_DEFAULT
QoS Deadline default.
Definition: types.h:453
rmw_ret_t
int32_t rmw_ret_t
Return code for rmw functions.
Definition: ret_types.h:26
RMW_QOS_POLICY_HISTORY_SYSTEM_DEFAULT
RMW_QOS_POLICY_HISTORY_SYSTEM_DEFAULT
Implementation default for history policy.
Definition: types.h:385
RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT
RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT
Implementation specific default.
Definition: types.h:430
RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT
RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT
Impplementation specific default.
Definition: types.h:401
RMW_QOS_LIVELINESS_LEASE_DURATION_DEFAULT
#define RMW_QOS_LIVELINESS_LEASE_DURATION_DEFAULT
QoS Liveliness lease duration default.
Definition: types.h:459
RMW_QOS_POLICY_RELIABILITY_RELIABLE
RMW_QOS_POLICY_RELIABILITY_RELIABLE
Guarantee that samples are delivered, may retry multiple times.
Definition: types.h:372
RMW_QOS_COMPATIBILITY_OK
RMW_QOS_COMPATIBILITY_OK
QoS policies are compatible.
Definition: qos_profiles.h:119
rmw_qos_profile_t
ROS MiddleWare quality of service profile.
Definition: types.h:462
RMW_QOS_POLICY_DURABILITY_VOLATILE
RMW_QOS_POLICY_DURABILITY_VOLATILE
Samples are not persistent.
Definition: types.h:407
RMW_QOS_LIFESPAN_DEFAULT
#define RMW_QOS_LIFESPAN_DEFAULT
QoS Lifespan default.
Definition: types.h:456
rmw_qos_profile_check_compatible
rmw_ret_t rmw_qos_profile_check_compatible(const rmw_qos_profile_t publisher_profile, const rmw_qos_profile_t subscription_profile, rmw_qos_compatibility_type_t *compatibility, char *reason, size_t reason_size)
Check if two QoS profiles are compatible.
RMW_QOS_POLICY_HISTORY_KEEP_LAST
RMW_QOS_POLICY_HISTORY_KEEP_LAST
Only store up to a maximum number of samples, dropping oldest once max is exceeded.
Definition: types.h:388