C++ API
rmw: ROS Middleware Abstraction Interface
rmw
defines an interface of middleware primitives that are used by the higher level ROS APIs. It consists of these main components:
Initialization and Shutdown:
rmw/init.h
Nodes
rmw/rmw.h
Publisher
rmw/rmw.h
Subscription
rmw/rmw.h
Service Client
rmw/rmw.h
Service Server
rmw/rmw.h
There are some common utility functions in combination with “Topics” or “Services”:
A function to validate a fully qualified topic or service name
rmw/validate_full_topic_name.h
A function to validate a node’s namespace
rmw/validate_namespace.h
A function to validate a node’s name
rmw/validate_node_name.h
A function to validate the compatibility of two QoS profiles
rmw/qos_profiles.h
It also has some machinery that is necessary to wait on and act on these concepts:
Initialization and shutdown management (global for now)
rmw/rmw.h
Wait sets for waiting on messages and service requests / responses to be ready
rmw/rmw.h
Guard conditions for waking up wait sets asynchronously
rmw/rmw.h
Introspection of the ROS graph
rmw_names_and_types_t
rmw/names_and_types.h
rmw/get_topic_names_and_types.h
rmw/get_topic_endpoint_info.h
rmw/get_service_names_and_types.h
Further still there are some useful abstractions and utilities:
Allocator functions for various types
rmw/allocators.h
Error handling functionality (C style)
rmw/error_handling.h
Macros
rmw/macros.h
Return code types and other utility types
rmw/types.h
Sanity checks for some of the types
rmw/sanity_checks.h
Macros for controlling symbol visibility on the library
rmw/visibility_control.h
Utility function to demangle a type to a human readable string (C++ specific):
rmw/impl/cpp/demangle.hpp
Page Hierarchy
Class Hierarchy
-
- Struct rmw_client_s
- Struct rmw_clients_s
- Struct rmw_context_s
- Struct rmw_discovery_options_s
- Struct rmw_event_s
- Struct rmw_events_s
- Struct rmw_gid_s
- Struct rmw_guard_condition_s
- Struct rmw_guard_conditions_s
- Struct rmw_incompatible_type_status_s
- Struct rmw_init_options_s
- Struct rmw_liveliness_changed_status_s
- Struct rmw_liveliness_lost_status_s
- Struct rmw_matched_status_s
- Struct rmw_message_info_s
- Struct rmw_message_info_sequence_s
- Struct rmw_message_lost_status_s
- Struct rmw_message_sequence_s
- Struct rmw_names_and_types_s
- Struct rmw_network_flow_endpoint_array_s
- Struct rmw_network_flow_endpoint_s
- Struct rmw_node_s
- Struct rmw_offered_deadline_missed_status_s
- Struct rmw_peer_address_s
- Struct rmw_publisher_allocation_s
- Struct rmw_publisher_options_s
- Struct rmw_publisher_s
- Struct rmw_qos_incompatible_event_status_s
- Struct rmw_qos_profile_s
- Struct rmw_request_id_s
- Struct rmw_requested_deadline_missed_status_s
- Struct rmw_security_options_s
- Struct rmw_service_info_s
- Struct rmw_service_s
- Struct rmw_services_s
- Struct rmw_subscription_allocation_s
- Struct rmw_subscription_content_filter_options_s
- Struct rmw_subscription_options_s
- Struct rmw_subscription_s
- Struct rmw_subscriptions_s
- Struct rmw_time_s
- Struct rmw_topic_endpoint_info_array_s
- Struct rmw_topic_endpoint_info_s
- Struct rmw_wait_set_s
- Enum
- Enum rmw_automatic_discovery_range_e
- Enum rmw_endpoint_type_e
- Enum rmw_event_type_e
- Enum rmw_feature_e
- Enum rmw_internet_protocol_e
- Enum rmw_log_severity_t
- Enum rmw_qos_compatibility_type_e
- Enum rmw_qos_durability_policy_e
- Enum rmw_qos_history_policy_e
- Enum rmw_qos_liveliness_policy_e
- Enum rmw_qos_policy_kind_e
- Enum rmw_qos_reliability_policy_e
- Enum rmw_security_enforcement_policy_e
- Enum rmw_transport_protocol_e
- Enum rmw_unique_network_flow_endpoints_requirement_e
File Hierarchy
-
- Directory include