.. _program_listing_file_include_rcl_action_action_server.h: Program Listing for File action_server.h ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/rcl_action/action_server.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // Copyright 2018 Open Source Robotics Foundation, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef RCL_ACTION__ACTION_SERVER_H_ #define RCL_ACTION__ACTION_SERVER_H_ #ifdef __cplusplus extern "C" { #endif #include "rcl_action/goal_handle.h" #include "rcl_action/types.h" #include "rcl_action/visibility_control.h" #include "rcl/event_callback.h" #include "rcl/macros.h" #include "rcl/node.h" #include "rcl/time.h" #include "rosidl_runtime_c/action_type_support_struct.h" typedef struct rcl_action_server_impl_s rcl_action_server_impl_t; typedef struct rcl_action_server_s { rcl_action_server_impl_t * impl; } rcl_action_server_t; typedef struct rcl_action_server_options_s { rmw_qos_profile_t goal_service_qos; rmw_qos_profile_t cancel_service_qos; rmw_qos_profile_t result_service_qos; rmw_qos_profile_t feedback_topic_qos; rmw_qos_profile_t status_topic_qos; rcl_allocator_t allocator; rcl_duration_t result_timeout; } rcl_action_server_options_t; RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_action_server_t rcl_action_get_zero_initialized_server(void); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_server_init( rcl_action_server_t * action_server, rcl_node_t * node, rcl_clock_t * clock, const rosidl_action_type_support_t * type_support, const char * action_name, const rcl_action_server_options_t * options); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_server_fini(rcl_action_server_t * action_server, rcl_node_t * node); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_action_server_options_t rcl_action_server_get_default_options(void); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_take_goal_request( const rcl_action_server_t * action_server, rmw_request_id_t * request_header, void * ros_goal_request); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_send_goal_response( const rcl_action_server_t * action_server, rmw_request_id_t * response_header, void * ros_goal_response); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_action_goal_handle_t * rcl_action_accept_new_goal( rcl_action_server_t * action_server, const rcl_action_goal_info_t * goal_info); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_publish_feedback( const rcl_action_server_t * action_server, void * ros_feedback); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_get_goal_status_array( const rcl_action_server_t * action_server, rcl_action_goal_status_array_t * status_message); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_publish_status( const rcl_action_server_t * action_server, const void * status_message); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_take_result_request( const rcl_action_server_t * action_server, rmw_request_id_t * request_header, void * ros_result_request); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_send_result_response( const rcl_action_server_t * action_server, rmw_request_id_t * response_header, void * ros_result_response); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_expire_goals( const rcl_action_server_t * action_server, rcl_action_goal_info_t * expired_goals, size_t expired_goals_capacity, size_t * num_expired); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_notify_goal_done( const rcl_action_server_t * action_server); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_take_cancel_request( const rcl_action_server_t * action_server, rmw_request_id_t * request_header, void * ros_cancel_request); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_process_cancel_request( const rcl_action_server_t * action_server, const rcl_action_cancel_request_t * cancel_request, rcl_action_cancel_response_t * cancel_response); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_send_cancel_response( const rcl_action_server_t * action_server, rmw_request_id_t * response_header, void * ros_cancel_response); RCL_ACTION_PUBLIC RCL_WARN_UNUSED const char * rcl_action_server_get_action_name(const rcl_action_server_t * action_server); RCL_ACTION_PUBLIC RCL_WARN_UNUSED const rcl_action_server_options_t * rcl_action_server_get_options(const rcl_action_server_t * action_server); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_server_get_goal_handles( const rcl_action_server_t * action_server, rcl_action_goal_handle_t *** goal_handles, size_t * num_goals); RCL_ACTION_PUBLIC RCL_WARN_UNUSED bool rcl_action_server_goal_exists( const rcl_action_server_t * action_server, const rcl_action_goal_info_t * goal_info); RCL_ACTION_PUBLIC RCL_WARN_UNUSED bool rcl_action_server_is_valid(const rcl_action_server_t * action_server); RCL_ACTION_PUBLIC RCL_WARN_UNUSED bool rcl_action_server_is_valid_except_context(const rcl_action_server_t * action_server); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_server_set_goal_service_callback( const rcl_action_server_t * action_server, rcl_event_callback_t callback, const void * user_data); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_server_set_cancel_service_callback( const rcl_action_server_t * action_server, rcl_event_callback_t callback, const void * user_data); RCL_ACTION_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_action_server_set_result_service_callback( const rcl_action_server_t * action_server, rcl_event_callback_t callback, const void * user_data); #ifdef __cplusplus } #endif #endif // RCL_ACTION__ACTION_SERVER_H_