rmw
master
C API providing a middleware abstraction layer which is used to implement the rest of ROS.
|
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <rcutils/logging.h>
#include "rmw/events_statuses/events_statuses.h"
#include "rmw/init.h"
#include "rmw/init_options.h"
#include "rmw/ret_types.h"
#include "rmw/security_options.h"
#include "rmw/serialized_message.h"
#include "rmw/time.h"
#include "rmw/visibility_control.h"
Go to the source code of this file.
Classes | |
struct | rmw_node_t |
Structure which encapsulates an rmw node. More... | |
struct | rmw_publisher_options_t |
Options that can be used to configure the creation of a publisher in rmw. More... | |
struct | rmw_publisher_t |
Structure which encapsulates an rmw publisher. More... | |
struct | rmw_subscription_options_t |
Options that can be used to configure the creation of a subscription in rmw. More... | |
struct | rmw_subscription_t |
struct | rmw_service_t |
A handle to an rmw service. More... | |
struct | rmw_client_t |
A handle to an rmw service client. More... | |
struct | rmw_guard_condition_t |
Handle for an rmw guard condition. More... | |
struct | rmw_publisher_allocation_t |
Allocation of memory for an rmw publisher. More... | |
struct | rmw_subscription_allocation_t |
Allocation of memory for an rmw subscription. More... | |
struct | rmw_subscriptions_t |
Array of subscriber handles. More... | |
struct | rmw_services_t |
Array of service handles. More... | |
struct | rmw_clients_t |
Array of client handles. More... | |
struct | rmw_events_t |
struct | rmw_guard_conditions_t |
Array of guard condition handles. More... | |
struct | rmw_wait_set_t |
Container for guard conditions to be waited on. More... | |
struct | rmw_request_id_t |
An rmw service request identifier. More... | |
struct | rmw_service_info_t |
Meta-data for a service-related take. More... | |
struct | rmw_qos_profile_t |
ROS MiddleWare quality of service profile. More... | |
struct | rmw_gid_t |
ROS graph ID of the topic. More... | |
struct | rmw_message_info_t |
Information describing an rmw message. More... | |
Macros | |
#define | RMW_GID_STORAGE_SIZE 24u |
#define | RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE_DEPRECATED_MSG |
#define | RMW_DECLARE_DEPRECATED(name, msg) name __attribute__((deprecated(msg))) |
#define | RMW_QOS_DEADLINE_DEFAULT RMW_DURATION_UNSPECIFIED |
QoS Deadline default. More... | |
#define | RMW_QOS_LIFESPAN_DEFAULT RMW_DURATION_UNSPECIFIED |
QoS Lifespan default. More... | |
#define | RMW_QOS_LIVELINESS_LEASE_DURATION_DEFAULT RMW_DURATION_UNSPECIFIED |
QoS Liveliness lease duration default. More... | |
Enumerations | |
enum | { RMW_QOS_POLICY_DEPTH_SYSTEM_DEFAULT = 0 } |
enum | RMW_PUBLIC_TYPE { RMW_LOG_SEVERITY_DEBUG = RCUTILS_LOG_SEVERITY_DEBUG, RMW_LOG_SEVERITY_INFO = RCUTILS_LOG_SEVERITY_INFO, RMW_LOG_SEVERITY_WARN = RCUTILS_LOG_SEVERITY_WARN, RMW_LOG_SEVERITY_ERROR = RCUTILS_LOG_SEVERITY_ERROR, RMW_LOG_SEVERITY_FATAL = RCUTILS_LOG_SEVERITY_FATAL } |
Type mapping of rcutils log severity types to rmw specific types. More... | |
Functions | |
RMW_DECLARE_DEPRECATED (RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE, RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE_DEPRECATED_MSG) | |
rmw_message_info_t | rmw_get_zero_initialized_message_info (void) |
Get zero initialized mesage info. More... | |
Variables | |
RMW_ENDPOINT_INVALID = 0 | |
Endpoint type has not yet been set. More... | |
RMW_ENDPOINT_PUBLISHER | |
Creates and publishes messages to the ROS topic. More... | |
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_NOT_REQUIRED = 0 | |
Unique network flow endpoints not required. More... | |
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_STRICTLY_REQUIRED | |
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_OPTIONALLY_REQUIRED | |
enum RMW_PUBLIC_TYPE | rmw_qos_reliability_policy_t |
RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT | |
Implementation specific default. More... | |
RMW_QOS_POLICY_RELIABILITY_RELIABLE | |
Guarantee that samples are delivered, may retry multiple times. More... | |
RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT | |
Attempt to deliver samples, but some may be lost if the network is not robust. More... | |
enum RMW_PUBLIC_TYPE | rmw_qos_history_policy_t |
QoS history enumerations describing how samples endure. More... | |
RMW_QOS_POLICY_HISTORY_SYSTEM_DEFAULT | |
Implementation default for history policy. More... | |
RMW_QOS_POLICY_HISTORY_KEEP_LAST | |
Only store up to a maximum number of samples, dropping oldest once max is exceeded. More... | |
RMW_QOS_POLICY_HISTORY_KEEP_ALL | |
Store all samples, subject to resource limits. More... | |
enum RMW_PUBLIC_TYPE | rmw_qos_durability_policy_t |
QoS durability enumerations describing how samples persist. More... | |
RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT | |
Impplementation specific default. More... | |
RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL | |
The rmw publisher is responsible for persisting samples for “late-joining” subscribers. More... | |
RMW_QOS_POLICY_DURABILITY_VOLATILE | |
Samples are not persistent. More... | |
enum RMW_PUBLIC_TYPE | rmw_qos_liveliness_policy_t |
RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT = 0 | |
Implementation specific default. More... | |
RMW_QOS_POLICY_LIVELINESS_AUTOMATIC = 1 | |
The signal that establishes a Topic is alive comes from the ROS rmw layer. More... | |
RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC = 3 | |
#define RMW_GID_STORAGE_SIZE 24u |
#define RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE_DEPRECATED_MSG |
#define RMW_DECLARE_DEPRECATED | ( | name, | |
msg | |||
) | name __attribute__((deprecated(msg))) |
#define RMW_QOS_DEADLINE_DEFAULT RMW_DURATION_UNSPECIFIED |
QoS Deadline default.
#define RMW_QOS_LIFESPAN_DEFAULT RMW_DURATION_UNSPECIFIED |
QoS Lifespan default.
#define RMW_QOS_LIVELINESS_LEASE_DURATION_DEFAULT RMW_DURATION_UNSPECIFIED |
QoS Liveliness lease duration default.
typedef struct RMW_PUBLIC_TYPE rmw_node_t rmw_node_t |
Structure which encapsulates an rmw node.
Endpoint enumeration type.
Unique network flow endpoints requirement enumeration.
typedef 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.
typedef struct RMW_PUBLIC_TYPE rmw_publisher_t rmw_publisher_t |
Structure which encapsulates an rmw publisher.
typedef 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.
typedef struct RMW_PUBLIC_TYPE rmw_subscription_t rmw_subscription_t |
typedef struct RMW_PUBLIC_TYPE rmw_service_t rmw_service_t |
A handle to an rmw service.
typedef struct RMW_PUBLIC_TYPE rmw_client_t rmw_client_t |
A handle to an rmw service client.
typedef struct RMW_PUBLIC_TYPE rmw_guard_condition_t rmw_guard_condition_t |
Handle for an rmw guard condition.
typedef struct RMW_PUBLIC_TYPE rmw_publisher_allocation_t rmw_publisher_allocation_t |
Allocation of memory for an rmw publisher.
Allocation of memory for an rmw subscription.
typedef struct RMW_PUBLIC_TYPE rmw_subscriptions_t rmw_subscriptions_t |
Array of subscriber handles.
An array of void * pointers representing type-erased middleware-specific subscriptions. The number of non-null entries may be smaller than the allocated size of the array. The number of subscriptions represented may be smaller than the allocated size of the array. The creator of this struct is responsible for allocating and deallocating the array.
typedef struct RMW_PUBLIC_TYPE rmw_services_t rmw_services_t |
Array of service handles.
An array of void * pointers representing type-erased middleware-specific services. The number of non-null entries may be smaller than the allocated size of the array. The number of services represented may be smaller than the allocated size of the array. The creator of this struct is responsible for allocating and deallocating the array.
typedef struct RMW_PUBLIC_TYPE rmw_clients_t rmw_clients_t |
Array of client handles.
An array of void * pointers representing type-erased middleware-specific clients. The number of non-null entries may be smaller than the allocated size of the array. The number of clients represented may be smaller than the allocated size of the array. The creator of this struct is responsible for allocating and deallocating the array.
typedef struct RMW_PUBLIC_TYPE rmw_events_t rmw_events_t |
typedef struct RMW_PUBLIC_TYPE rmw_guard_conditions_t rmw_guard_conditions_t |
Array of guard condition handles.
An array of void * pointers representing type-erased middleware-specific guard conditions. The number of non-null entries may be smaller than the allocated size of the array. The number of guard conditions represented may be smaller than the allocated size of the array. The creator of this struct is responsible for allocating and deallocating the array.
typedef struct RMW_PUBLIC_TYPE rmw_wait_set_t rmw_wait_set_t |
Container for guard conditions to be waited on.
typedef struct RMW_PUBLIC_TYPE rmw_request_id_t rmw_request_id_t |
An rmw service request identifier.
typedef struct RMW_PUBLIC_TYPE rmw_service_info_t rmw_service_info_t |
Meta-data for a service-related take.
typedef struct RMW_PUBLIC_TYPE rmw_qos_profile_t rmw_qos_profile_t |
ROS MiddleWare quality of service profile.
typedef struct RMW_PUBLIC_TYPE rmw_gid_t rmw_gid_t |
ROS graph ID of the topic.
typedef struct RMW_PUBLIC_TYPE rmw_message_info_t rmw_message_info_t |
Information describing an rmw message.
typedef enum RMW_PUBLIC_TYPE rmw_log_severity_t |
Type mapping of rcutils log severity types to rmw specific types.
anonymous enum |
enum RMW_PUBLIC_TYPE |
Type mapping of rcutils log severity types to rmw specific types.
rmw_qos_liveliness_policy_t::RMW_DECLARE_DEPRECATED | ( | RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE | , |
RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_NODE_DEPRECATED_MSG | |||
) |
Explicitly asserting node liveliness is required in this case. This option is deprecated, use RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC if your application requires to assert liveliness manually.
rmw_message_info_t rmw_get_zero_initialized_message_info | ( | void | ) |
Get zero initialized mesage info.
RMW_ENDPOINT_INVALID = 0 |
Endpoint type has not yet been set.
RMW_ENDPOINT_PUBLISHER |
Creates and publishes messages to the ROS topic.
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_NOT_REQUIRED = 0 |
Unique network flow endpoints not required.
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_STRICTLY_REQUIRED |
Unique network flow endpoins strictly required. Error if not provided by RMW implementation.
RMW_UNIQUE_NETWORK_FLOW_ENDPOINTS_OPTIONALLY_REQUIRED |
Unique network flow endpoints optionally required. No error if not provided RMW implementation.
enum RMW_PUBLIC_TYPE rmw_qos_reliability_policy_t |
RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT |
Implementation specific default.
RMW_QOS_POLICY_RELIABILITY_RELIABLE |
Guarantee that samples are delivered, may retry multiple times.
RMW_QOS_POLICY_RELIABILITY_BEST_EFFORT |
Attempt to deliver samples, but some may be lost if the network is not robust.
enum RMW_PUBLIC_TYPE rmw_qos_history_policy_t |
QoS history enumerations describing how samples endure.
RMW_QOS_POLICY_HISTORY_SYSTEM_DEFAULT |
Implementation default for history policy.
RMW_QOS_POLICY_HISTORY_KEEP_LAST |
Only store up to a maximum number of samples, dropping oldest once max is exceeded.
RMW_QOS_POLICY_HISTORY_KEEP_ALL |
Store all samples, subject to resource limits.
enum RMW_PUBLIC_TYPE rmw_qos_durability_policy_t |
QoS durability enumerations describing how samples persist.
RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT |
Impplementation specific default.
RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL |
The rmw publisher is responsible for persisting samples for “late-joining” subscribers.
RMW_QOS_POLICY_DURABILITY_VOLATILE |
Samples are not persistent.
enum RMW_PUBLIC_TYPE rmw_qos_liveliness_policy_t |
QoS liveliness enumerations that describe a publisher's reporting policy for its alive status. For a subscriber, these are its requirements for its topic's publishers.
RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT = 0 |
Implementation specific default.
RMW_QOS_POLICY_LIVELINESS_AUTOMATIC = 1 |
The signal that establishes a Topic is alive comes from the ROS rmw layer.
RMW_QOS_POLICY_LIVELINESS_MANUAL_BY_TOPIC = 3 |
The signal that establishes a Topic is alive is at the Topic level. Only publishing a message on the Topic or an explicit signal from the application to assert liveliness on the Topic will mark the Topic as being alive.