rcl  master
C API providing common ROS client library functionality.
Todo List
Member rcl_client_init (rcl_client_t *client, const rcl_node_t *node, const rosidl_service_type_support_t *type_support, const char *service_name, const rcl_client_options_t *options)
TODO(wjwwood) write these instructions once and link to it instead
Member rcl_count_publishers (const rcl_node_t *node, const char *topic_name, size_t *count)
TODO(wjwwood): link to the topic name rules.
Member rcl_count_subscribers (const rcl_node_t *node, const char *topic_name, size_t *count)
TODO(wjwwood): link to the topic name rules.
Member rcl_logging_external_initialize (const char *config_file, rcutils_allocator_t allocator)
TODO(clalancette) This API is marked RCL_PUBLIC, but is not built or exported from librcl. Instead, these headers should be split into a separate package which is then depended on by both rcl and the rcl_logging_* implementations. The duplicated headers from the implementations could then be removed.
Member rcl_node_get_graph_guard_condition (const rcl_node_t *node)
TODO(wjwwood): link to exhaustive list of graph events
Member rcl_node_init (rcl_node_t *node, const char *name, const char *namespace_, rcl_context_t *context, const rcl_node_options_t *options)

TODO(wjwwood): node name uniqueness is no yet enforced

TODO(wjwwood): Parameter infrastructure is currently initialized in the language specific client library, e.g. rclcpp for C++, but will be initialized here in the future. When that happens there will be an option to avoid parameter infrastructure with an option in the rcl_node_options_t struct.

Member rcl_node_options_t::domain_id
TODO(wjwwood): Should we put a limit on the ROS_DOMAIN_ID value, that way we can have a safe value for the default RCL_NODE_OPTIONS_DEFAULT_DOMAIN_ID? (currently max size_t)
Member rcl_publish (const rcl_publisher_t *publisher, const void *ros_message, rmw_publisher_allocation_t *allocation)
TODO(wjwwood): The blocking behavior of publish is a still a point of dispute. This section should be updated once the behavior is clearly defined. See: https://github.com/ros2/ros2/issues/255
Member rcl_publisher_init (rcl_publisher_t *publisher, const rcl_node_t *node, const rosidl_message_type_support_t *type_support, const char *topic_name, const rcl_publisher_options_t *options)
TODO(wjwwood) write these instructions once and link to it instead
Member rcl_service_init (rcl_service_t *service, const rcl_node_t *node, const rosidl_service_type_support_t *type_support, const char *service_name, const rcl_service_options_t *options)
TODO(wjwwood) write these instructions once and link to it instead
Member rcl_subscription_init (rcl_subscription_t *subscription, const rcl_node_t *node, const rosidl_message_type_support_t *type_support, const char *topic_name, const rcl_subscription_options_t *options)
TODO(wjwwood) write these instructions once and link to it instead For C a macro can be used (for example std_msgs/String):