rmw  master
C API providing a middleware abstraction layer which is used to implement the rest of ROS.
types.h
Go to the documentation of this file.
1 // Copyright 2014-2017 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__TYPES_H_
16 #define RMW__TYPES_H_
17 
18 #ifdef __cplusplus
19 extern "C"
20 {
21 #endif
22 
23 #include <stdbool.h>
24 #include <stddef.h>
25 #include <stdint.h>
26 
27 // map rcutils specific log levels to rmw speicfic type
28 #include <rcutils/logging.h>
29 
31 #include "rmw/init.h"
32 #include "rmw/init_options.h"
33 #include "rmw/ret_types.h"
34 #include "rmw/security_options.h"
35 #include "rmw/serialized_message.h"
36 #include "rmw/time.h"
37 #include "rmw/visibility_control.h"
38 
39 // 24 bytes is the most memory needed to represent the GID by any current
40 // implementation. It may need to be increased in the future.
41 #define RMW_GID_STORAGE_SIZE 24u
42 
45 {
48 
50  void * data;
51 
53  const char * name;
54 
56  const char * namespace_;
57 
60 } rmw_node_t;
61 
64 {
67 
70 
72  RMW_ENDPOINT_SUBSCRIPTION
74 
77 {
80 
84 
88 
90  RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_SYSTEM_DEFAULT
92 
95 {
97 
107 
109 
117 
120 {
123 
125  void * data;
126 
128  const char * topic_name;
129 
131 
140 
144 
147 {
149 
156 
158 
171 
173 
181 
183 {
186 
188  void * data;
189 
191  const char * topic_name;
192 
194 
203 
207 
210 {
213 
215  void * data;
216 
218  const char * service_name;
219 } rmw_service_t;
220 
223 {
226 
228  void * data;
229 
231  const char * service_name;
232 } rmw_client_t;
233 
236 {
239 
241  void * data;
242 
246 
249 {
252 
254  void * data;
256 
259 {
262 
264  void * data;
266 
268 
275 {
279  void ** subscribers;
281 
283 
290 {
294  void ** services;
296 
298 
305 {
307  size_t client_count;
309  void ** clients;
310 } rmw_clients_t;
311 
313 {
315  size_t event_count;
317  void ** events;
318 } rmw_events_t;
319 
321 
328 {
334 
337 {
340 
343 
345  void * data;
347 
350 {
352  int8_t writer_guid[16];
353 
357 
360 {
365 
367 {
370 
373 
376 
378  RMW_QOS_POLICY_RELIABILITY_UNKNOWN
379 };
380 
383 {
386 
389 
392 
394  RMW_QOS_POLICY_HISTORY_UNKNOWN
395 };
396 
399 {
402 
405 
408 
410  RMW_QOS_POLICY_DURABILITY_UNKNOWN
411 };
412 
413 #define RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE_DEPRECATED_MSG \
414  "RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE is deprecated. " \
415  "Use RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC if manually asserted liveliness is needed."
416 
417 #ifndef _WIN32
418 # define RMW_DECLARE_DEPRECATED(name, msg) name __attribute__((deprecated(msg)))
419 #else
420 # define RMW_DECLARE_DEPRECATED(name, msg) name __pragma(deprecated(name))
421 #endif
422 
425 // Suppress syntax errors, as cppcheck does not seem to handle enumerator attributes.
426 // cppcheck-suppress syntaxError
428 {
431 
434 
439  RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE,
441 
445  // Using `3` for backwards compatibility.
447 
449  RMW_QOS_POLICY_LIVELINESS_UNKNOWN = 4
450 };
451 
453 #define RMW_QOS_DEADLINE_DEFAULT RMW_DURATION_UNSPECIFIED
454 
456 #define RMW_QOS_LIFESPAN_DEFAULT RMW_DURATION_UNSPECIFIED
457 
459 #define RMW_QOS_LIVELINESS_LEASE_DURATION_DEFAULT RMW_DURATION_UNSPECIFIED
460 
463 {
466  size_t depth;
472 
477  struct rmw_time_t deadline;
479 
484  struct rmw_time_t lifespan;
488 
493  struct rmw_time_t liveliness_lease_duration;
494 
496 
507 
510 {
513 
515  uint8_t data[RMW_GID_STORAGE_SIZE];
516 } rmw_gid_t;
517 
520 {
524 
528 
534 
538 
540 typedef enum RMW_PUBLIC_TYPE
541 {
544 
547 
550 
553 
557 
558 #ifdef __cplusplus
559 }
560 #endif
561 
562 #endif // RMW__TYPES_H_
rmw_guard_conditions_t
struct RMW_PUBLIC_TYPE rmw_guard_conditions_t rmw_guard_conditions_t
Array of guard condition handles.
rmw_guard_conditions_t
Array of guard condition handles.
Definition: types.h:327
RMW_QOS_POLICY_LIVELINESS_AUTOMATIC
RMW_QOS_POLICY_LIVELINESS_AUTOMATIC
The signal that establishes a Topic is alive comes from the ROS rmw layer.
Definition: types.h:433
rmw_node_t
Structure which encapsulates an rmw node.
Definition: types.h:44
rmw_client_t::service_name
const char * service_name
The name of this service as exposed to the ros graph.
Definition: types.h:231
RMW_QOS_POLICY_HISTORY_KEEP_ALL
RMW_QOS_POLICY_HISTORY_KEEP_ALL
Store all samples, subject to resource limits.
Definition: types.h:391
rmw_wait_set_t::implementation_identifier
const char * implementation_identifier
The name of the rmw implementation.
Definition: types.h:339
RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT
RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT
Implementation specific default.
Definition: types.h:369
rmw_time_point_value_t
rcutils_time_point_value_t rmw_time_point_value_t
Definition: time.h:40
rmw_services_t::services
void ** services
Pointer to an array of void * pointers of services.
Definition: types.h:294
rmw_subscription_t::data
void * data
Type erased pointer to this subscription.
Definition: types.h:188
rmw_client_t
struct RMW_PUBLIC_TYPE rmw_client_t rmw_client_t
A handle to an rmw service client.
rmw_node_t::context
rmw_context_t * context
Context information about node's init specific information.
Definition: types.h:59
RMW_PUBLIC
#define RMW_PUBLIC
Definition: visibility_control.h:48
rmw_client_t::data
void * data
Type erased pointer to this service client.
Definition: types.h:228
rmw_subscription_options_t::rmw_specific_subscription_payload
void * rmw_specific_subscription_payload
Used to pass rmw implementation specific resources during subscription creation.
Definition: types.h:155
rmw_service_t
A handle to an rmw service.
Definition: types.h:209
rmw_services_t
struct RMW_PUBLIC_TYPE rmw_services_t rmw_services_t
Array of service handles.
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_OPTIONALLY_REQUIRED
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_OPTIONALLY_REQUIRED
Definition: types.h:87
rmw_service_t::service_name
const char * service_name
The name of this service as exposed to the ros graph.
Definition: types.h:218
rmw_message_info_t::source_timestamp
rmw_time_point_value_t source_timestamp
Definition: types.h:521
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
rmw_service_info_t
struct RMW_PUBLIC_TYPE rmw_service_info_t rmw_service_info_t
Meta-data for a service-related take.
rmw_message_info_t
Information describing an rmw message.
Definition: types.h:519
rmw_time_t
A struct representing a duration or relative time in RMW - does not encode an origin.
Definition: time.h:31
rmw_message_info_t::publisher_gid
rmw_gid_t publisher_gid
Definition: types.h:523
rmw_events_t
struct RMW_PUBLIC_TYPE rmw_events_t rmw_events_t
rmw_log_severity_t
enum RMW_PUBLIC_TYPE rmw_log_severity_t
Type mapping of rcutils log severity types to rmw specific types.
rmw_publisher_options_t::require_unique_network_flow_endpoints
rmw_unique_network_flow_endpoints_requirement_t require_unique_network_flow_endpoints
Require middleware to generate unique network flow endpoints.
Definition: types.h:115
rmw_subscription_allocation_t
Allocation of memory for an rmw subscription.
Definition: types.h:258
rmw_publisher_allocation_t
struct RMW_PUBLIC_TYPE rmw_publisher_allocation_t rmw_publisher_allocation_t
Allocation of memory for an rmw publisher.
rmw_publisher_allocation_t::implementation_identifier
const char * implementation_identifier
The name of the rmw implementation.
Definition: types.h:251
rmw_guard_condition_t::context
rmw_context_t * context
rmw context associated with this guard condition
Definition: types.h:244
RMW_PUBLIC_TYPE
RMW_PUBLIC_TYPE
Type mapping of rcutils log severity types to rmw specific types.
Definition: types.h:540
rmw_wait_set_t::guard_conditions
rmw_guard_conditions_t * guard_conditions
The guard condition to be waited on.
Definition: types.h:342
rmw_subscriptions_t::subscriber_count
size_t subscriber_count
The number of subscribers represented by the array.
Definition: types.h:277
rmw_publisher_t
struct RMW_PUBLIC_TYPE rmw_publisher_t rmw_publisher_t
Structure which encapsulates an rmw publisher.
rmw_endpoint_type_t
enum RMW_PUBLIC_TYPE rmw_endpoint_type_t rmw_endpoint_type_t
Endpoint enumeration type.
Definition: types.h:63
rmw_subscriptions_t
struct RMW_PUBLIC_TYPE rmw_subscriptions_t rmw_subscriptions_t
Array of subscriber handles.
rmw_guard_condition_t
Handle for an rmw guard condition.
Definition: types.h:235
RCUTILS_LOG_SEVERITY_DEBUG
RCUTILS_LOG_SEVERITY_DEBUG
events_statuses.h
rmw_subscription_allocation_t::data
void * data
Type erased pointer to this allocation.
Definition: types.h:264
ret_types.h
rmw_wait_set_t::data
void * data
Type erased pointer to this wait set's data.
Definition: types.h:345
rmw_events_t::events
void ** events
Pointer to an array of void * pointers of events.
Definition: types.h:317
rmw_node_t::name
const char * name
A concise name of this rmw node for identification.
Definition: types.h:53
rmw_message_info_t
struct RMW_PUBLIC_TYPE rmw_message_info_t rmw_message_info_t
Information describing an rmw message.
rmw_publisher_options_t
Options that can be used to configure the creation of a publisher in rmw.
Definition: types.h:94
rmw_subscription_options_t
struct RMW_PUBLIC_TYPE rmw_subscription_options_t rmw_subscription_options_t
Options that can be used to configure the creation of a subscription in rmw.
rmw_wait_set_t
Container for guard conditions to be waited on.
Definition: types.h:336
rmw_subscription_t::topic_name
const char * topic_name
Name of the ros topic this subscription listens to.
Definition: types.h:191
rmw_node_t::implementation_identifier
const char * implementation_identifier
Name of the rmw implementation.
Definition: types.h:47
rmw_service_t::data
void * data
Type erased pointer to this service.
Definition: types.h:215
rmw_request_id_t::sequence_number
int64_t sequence_number
Sequence number of this service.
Definition: types.h:355
rmw_subscription_allocation_t
struct RMW_PUBLIC_TYPE rmw_subscription_allocation_t rmw_subscription_allocation_t
Allocation of memory for an rmw subscription.
rmw_subscription_t::implementation_identifier
const char * implementation_identifier
Name of the rmw implementation.
Definition: types.h:185
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_liveliness_policy_t
enum RMW_PUBLIC_TYPE rmw_qos_liveliness_policy_t
Definition: types.h:427
rmw_subscription_allocation_t::implementation_identifier
const char * implementation_identifier
The name of the rmw implementation.
Definition: types.h:261
rmw_service_info_t
Meta-data for a service-related take.
Definition: types.h:359
rmw_qos_profile_t::avoid_ros_namespace_conventions
bool avoid_ros_namespace_conventions
If true, any ROS specific namespacing conventions will be circumvented.
Definition: types.h:505
rmw_context_t
Initialization context structure which is used to store init specific information.
Definition: init.h:37
rmw_publisher_options_t::rmw_specific_publisher_payload
void * rmw_specific_publisher_payload
Used to pass rmw implementation specific resources during publisher creation.
Definition: types.h:106
rmw_client_t
A handle to an rmw service client.
Definition: types.h:222
rmw_subscription_t
Definition: types.h:182
rmw_publisher_t::implementation_identifier
const char * implementation_identifier
Name of the rmw implementation.
Definition: types.h:122
rmw_publisher_allocation_t
Allocation of memory for an rmw publisher.
Definition: types.h:248
RMW_LOG_SEVERITY_DEBUG
@ RMW_LOG_SEVERITY_DEBUG
Debug log severity, for pedantic messaging.
Definition: types.h:543
RMW_LOG_SEVERITY_FATAL
@ RMW_LOG_SEVERITY_FATAL
Fatal log severity, for reporting issue causing imminent shutdown.
Definition: types.h:555
serialized_message.h
rmw_services_t::service_count
size_t service_count
The number of services represented by the array.
Definition: types.h:292
init.h
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_STRICTLY_REQUIRED
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_STRICTLY_REQUIRED
Definition: types.h:83
RCUTILS_LOG_SEVERITY_INFO
RCUTILS_LOG_SEVERITY_INFO
rmw_guard_conditions_t::guard_condition_count
size_t guard_condition_count
The number of guard conditions represented by the array.
Definition: types.h:330
rmw_publisher_t::options
rmw_publisher_options_t options
Publisher options.
Definition: types.h:139
rmw_service_t::implementation_identifier
const char * implementation_identifier
The name of the rmw implementation.
Definition: types.h:212
RMW_QOS_POLICY_DEPTH_SYSTEM_DEFAULT
@ RMW_QOS_POLICY_DEPTH_SYSTEM_DEFAULT
Definition: types.h:537
rmw_request_id_t
struct RMW_PUBLIC_TYPE rmw_request_id_t rmw_request_id_t
An rmw service request identifier.
rmw_guard_condition_t
struct RMW_PUBLIC_TYPE rmw_guard_condition_t rmw_guard_condition_t
Handle for an rmw guard condition.
init_options.h
time.h
rmw_client_t::implementation_identifier
const char * implementation_identifier
The name of the rmw implementation.
Definition: types.h:225
security_options.h
rmw_publisher_t
Structure which encapsulates an rmw publisher.
Definition: types.h:119
RMW_GID_STORAGE_SIZE
#define RMW_GID_STORAGE_SIZE
Definition: types.h:41
rmw_qos_history_policy_t
enum RMW_PUBLIC_TYPE rmw_qos_history_policy_t
QoS history enumerations describing how samples endure.
Definition: types.h:382
rmw_request_id_t
An rmw service request identifier.
Definition: types.h:349
rmw_publisher_options_t
struct RMW_PUBLIC_TYPE rmw_publisher_options_t rmw_publisher_options_t
Options that can be used to configure the creation of a publisher in rmw.
rmw_node_t::namespace_
const char * namespace_
The namespace of this rmw node.
Definition: types.h:56
rmw_gid_t::implementation_identifier
const char * implementation_identifier
Name of the rmw implementation.
Definition: types.h:512
rmw_clients_t::clients
void ** clients
Pointer to an array of void * pointers of clients.
Definition: types.h:309
rmw_subscription_t::options
rmw_subscription_options_t options
Subscription options.
Definition: types.h:202
rmw_message_info_t::received_timestamp
rmw_time_point_value_t received_timestamp
Definition: types.h:522
rmw_subscriptions_t::subscribers
void ** subscribers
Pointer to an array of void * pointers of subscriptions.
Definition: types.h:279
RMW_LOG_SEVERITY_INFO
@ RMW_LOG_SEVERITY_INFO
Informational log severity, for reporting expected but not overwhelming information.
Definition: types.h:546
rmw_events_t::event_count
size_t event_count
The number of events represented by the array.
Definition: types.h:315
rmw_service_info_t::source_timestamp
rmw_time_point_value_t source_timestamp
Definition: types.h:361
RCUTILS_LOG_SEVERITY_FATAL
RCUTILS_LOG_SEVERITY_FATAL
RMW_QOS_POLICY_HISTORY_SYSTEM_DEFAULT
RMW_QOS_POLICY_HISTORY_SYSTEM_DEFAULT
Implementation default for history policy.
Definition: types.h:385
visibility_control.h
rmw_guard_condition_t::implementation_identifier
const char * implementation_identifier
The name of the rmw implementation.
Definition: types.h:238
rmw_services_t
Array of service handles.
Definition: types.h:289
rmw_subscription_options_t
Options that can be used to configure the creation of a subscription in rmw.
Definition: types.h:146
rmw_node_t::data
void * data
Type erased pointer to this node's data.
Definition: types.h:50
rmw_get_zero_initialized_message_info
rmw_message_info_t rmw_get_zero_initialized_message_info(void)
Get zero initialized mesage info.
RMW_LOG_SEVERITY_WARN
@ RMW_LOG_SEVERITY_WARN
Warning log severity, for reporting recoverable issues.
Definition: types.h:549
rmw_service_t
struct RMW_PUBLIC_TYPE rmw_service_t rmw_service_t
A handle to an rmw service.
rmw_clients_t
struct RMW_PUBLIC_TYPE rmw_clients_t rmw_clients_t
Array of client handles.
rmw_subscription_t::can_loan_messages
bool can_loan_messages
Indicates whether this subscription can loan messages.
Definition: types.h:205
rmw_qos_durability_policy_t
enum RMW_PUBLIC_TYPE rmw_qos_durability_policy_t
QoS durability enumerations describing how samples persist.
Definition: types.h:398
rmw_publisher_allocation_t::data
void * data
Type erased pointer to this allocation.
Definition: types.h:254
rmw_gid_t
ROS graph ID of the topic.
Definition: types.h:509
rmw_guard_condition_t::data
void * data
Type erased pointer to this guard condition.
Definition: types.h:241
RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT
RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT
Implementation specific default.
Definition: types.h:430
rmw_clients_t::client_count
size_t client_count
The number of clients represented by the array.
Definition: types.h:307
RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT
RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT
Impplementation specific default.
Definition: types.h:401
RMW_ENDPOINT_INVALID
RMW_ENDPOINT_INVALID
Endpoint type has not yet been set.
Definition: types.h:66
rmw_node_t
struct RMW_PUBLIC_TYPE rmw_node_t rmw_node_t
Structure which encapsulates an rmw node.
rmw_subscription_options_t::ignore_local_publications
bool ignore_local_publications
If true then the middleware should not deliver data from local publishers.
Definition: types.h:170
RCUTILS_LOG_SEVERITY_ERROR
RCUTILS_LOG_SEVERITY_ERROR
RMW_QOS_POLICY_RELIABILITY_RELIABLE
RMW_QOS_POLICY_RELIABILITY_RELIABLE
Guarantee that samples are delivered, may retry multiple times.
Definition: types.h:372
rmw_subscriptions_t
Array of subscriber handles.
Definition: types.h:274
rmw_publisher_t::data
void * data
Type erased pointer to this publisher's data.
Definition: types.h:125
rmw_unique_network_flow_endpoints_requirement_t
enum RMW_PUBLIC_TYPE rmw_unique_network_flow_endpoints_requirement_t rmw_unique_network_flow_endpoints_requirement_t
Unique network flow endpoints requirement enumeration.
Definition: types.h:76
rmw_subscription_t
struct RMW_PUBLIC_TYPE rmw_subscription_t rmw_subscription_t
rmw_qos_profile_t
ROS MiddleWare quality of service profile.
Definition: types.h:462
rmw_subscription_options_t::require_unique_network_flow_endpoints
rmw_unique_network_flow_endpoints_requirement_t require_unique_network_flow_endpoints
Require middleware to generate unique network flow endpoints.
Definition: types.h:179
RMW_DECLARE_DEPRECATED
#define RMW_DECLARE_DEPRECATED(name, msg)
Definition: types.h:418
rmw_qos_profile_t
struct RMW_PUBLIC_TYPE rmw_qos_profile_t rmw_qos_profile_t
ROS MiddleWare quality of service profile.
RCUTILS_LOG_SEVERITY_WARN
RCUTILS_LOG_SEVERITY_WARN
rmw_qos_reliability_policy_t
enum RMW_PUBLIC_TYPE rmw_qos_reliability_policy_t
Definition: types.h:366
rmw_service_info_t::received_timestamp
rmw_time_point_value_t received_timestamp
Definition: types.h:362
rmw_events_t
Definition: types.h:312
RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC
RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC
Definition: types.h:446
rmw_wait_set_t
struct RMW_PUBLIC_TYPE rmw_wait_set_t rmw_wait_set_t
Container for guard conditions to be waited on.
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_NOT_REQUIRED
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_NOT_REQUIRED
Unique network flow endpoints not required.
Definition: types.h:79
logging.h
RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL
RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL
The rmw publisher is responsible for persisting samples for “late-joining” subscribers.
Definition: types.h:404
RMW_LOG_SEVERITY_ERROR
@ RMW_LOG_SEVERITY_ERROR
Error log severity, for reporting uncoverable issues.
Definition: types.h:552
RMW_ENDPOINT_PUBLISHER
RMW_ENDPOINT_PUBLISHER
Creates and publishes messages to the ROS topic.
Definition: types.h:69
rmw_gid_t
struct RMW_PUBLIC_TYPE rmw_gid_t rmw_gid_t
ROS graph ID of the topic.
rmw_clients_t
Array of client handles.
Definition: types.h:304
rmw_message_info_t::from_intra_process
bool from_intra_process
Whether this message is from intra_process communication or not.
Definition: types.h:526
rmw_publisher_t::can_loan_messages
bool can_loan_messages
Indicate whether this publisher supports loaning messages.
Definition: types.h:142
RMW_QOS_POLICY_DURABILITY_VOLATILE
RMW_QOS_POLICY_DURABILITY_VOLATILE
Samples are not persistent.
Definition: types.h:407
rmw_qos_profile_t::depth
size_t depth
Size of the message queue.
Definition: types.h:466
RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE_DEPRECATED_MSG
#define RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE_DEPRECATED_MSG
Definition: types.h:413
rmw_publisher_t::topic_name
const char * topic_name
The name of the ROS topic this publisher publishes to.
Definition: types.h:128
rmw_service_info_t::request_id
rmw_request_id_t request_id
Definition: types.h:363
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
rmw_guard_conditions_t::guard_conditions
void ** guard_conditions
Pointer to an array of void * pointers of guard conditions.
Definition: types.h:332