rcl_action  master
C API providing common functionality for ROS actions.
action_client.h
Go to the documentation of this file.
1 // Copyright 2018 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 RCL_ACTION__ACTION_CLIENT_H_
16 #define RCL_ACTION__ACTION_CLIENT_H_
17 
18 #ifdef __cplusplus
19 extern "C"
20 {
21 #endif
22 
23 #include "rcl_action/types.h"
25 #include "rcl/macros.h"
26 #include "rcl/node.h"
27 
28 
30 struct rcl_action_client_impl_t;
31 
33 typedef struct rcl_action_client_t
34 {
35  struct rcl_action_client_impl_t * impl;
37 
40 {
48 
51 
53 
61 
63 
173 rcl_ret_t
175  rcl_action_client_t * action_client,
176  rcl_node_t * node,
177  const rosidl_action_type_support_t * type_support,
178  const char * action_name,
179  const rcl_action_client_options_t * options);
180 
182 
213 rcl_ret_t
214 rcl_action_client_fini(rcl_action_client_t * action_client, rcl_node_t * node);
215 
217 
231 
233 
270 rcl_ret_t
272  const rcl_node_t * node,
273  const rcl_action_client_t * client,
274  bool * is_available);
275 
277 
319 rcl_ret_t
321  const rcl_action_client_t * action_client,
322  const void * ros_goal_request,
323  int64_t * sequence_number);
324 
326 
366 rcl_ret_t
368  const rcl_action_client_t * action_client,
369  rmw_request_id_t * response_header,
370  void * ros_goal_response);
371 
373 
415 rcl_ret_t
417  const rcl_action_client_t * action_client,
418  void * ros_feedback);
419 
421 
461 rcl_ret_t
463  const rcl_action_client_t * action_client,
464  void * ros_status_array);
465 
467 
509 rcl_ret_t
511  const rcl_action_client_t * action_client,
512  const void * ros_result_request,
513  int64_t * sequence_number);
514 
516 
563 rcl_ret_t
565  const rcl_action_client_t * action_client,
566  rmw_request_id_t * response_header,
567  void * ros_result);
568 
570 
607 rcl_ret_t
609  const rcl_action_client_t * action_client,
610  const void * ros_cancel_request,
611  int64_t * sequence_number);
612 
614 
655 rcl_ret_t
657  const rcl_action_client_t * action_client,
658  rmw_request_id_t * response_header,
659  void * ros_cancel_response);
660 
662 
685 const char *
687 
689 
714 
716 
734 bool
736  const rcl_action_client_t * action_client);
737 
738 #ifdef __cplusplus
739 }
740 #endif
741 
742 #endif // RCL_ACTION__ACTION_CLIENT_H_
RCL_ACTION_PUBLIC const char * rcl_action_client_get_action_name(const rcl_action_client_t *action_client)
Get the name of the action for a rcl_action_client_t.
Structure which encapsulates a ROS action client.
Definition: action_client.h:33
rmw_qos_profile_t result_service_qos
Definition: action_client.h:43
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_take_status(const rcl_action_client_t *action_client, void *ros_status_array)
Take a ROS status message using a rcl_action_client_t.
struct rcl_action_client_options_t rcl_action_client_options_t
Options available for a rcl_action_client_t.
struct rcl_action_client_impl_t * impl
Definition: action_client.h:35
#define RCL_ACTION_PUBLIC
Definition: visibility_control.h:50
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_client_fini(rcl_action_client_t *action_client, rcl_node_t *node)
Finalize a rcl_action_client_t.
rmw_qos_profile_t feedback_topic_qos
Definition: action_client.h:45
RCL_ACTION_PUBLIC bool rcl_action_client_is_valid(const rcl_action_client_t *action_client)
Check that a rcl_action_client_t is valid.
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_server_is_available(const rcl_node_t *node, const rcl_action_client_t *client, bool *is_available)
Check if an action server is available for the given action client.
rmw_ret_t rcl_ret_t
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_client_init(rcl_action_client_t *action_client, rcl_node_t *node, const rosidl_action_type_support_t *type_support, const char *action_name, const rcl_action_client_options_t *options)
Initialize a rcl_action_client_t.
struct rcl_action_client_t rcl_action_client_t
Structure which encapsulates a ROS action client.
Options available for a rcl_action_client_t.
Definition: action_client.h:39
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_take_goal_response(const rcl_action_client_t *action_client, rmw_request_id_t *response_header, void *ros_goal_response)
Take a response for a goal request from an action server using a rcl_action_client_t.
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_send_result_request(const rcl_action_client_t *action_client, const void *ros_result_request, int64_t *sequence_number)
Send a request for the result of a completed goal associated with a rcl_action_client_t.
rmw_qos_profile_t goal_service_qos
Middleware quality of service settings for the action client.
Definition: action_client.h:42
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_take_result_response(const rcl_action_client_t *action_client, rmw_request_id_t *response_header, void *ros_result)
Take a ROS result message for a completed goal associated with a rcl_action_client_t.
RCL_ACTION_PUBLIC rcl_action_client_t rcl_action_get_zero_initialized_client(void)
Return a rcl_action_client_t struct with members set to NULL.
#define RCL_WARN_UNUSED
rmw_qos_profile_t status_topic_qos
Definition: action_client.h:46
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_send_cancel_request(const rcl_action_client_t *action_client, const void *ros_cancel_request, int64_t *sequence_number)
Send a cancel request for a goal using a rcl_action_client_t.
RCL_ACTION_PUBLIC const rcl_action_client_options_t * rcl_action_client_get_options(const rcl_action_client_t *action_client)
Return the options for a rcl_action_client_t.
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_take_cancel_response(const rcl_action_client_t *action_client, rmw_request_id_t *response_header, void *ros_cancel_response)
Take a cancel response using a rcl_action_client_t.
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_take_feedback(const rcl_action_client_t *action_client, void *ros_feedback)
Take a ROS feedback message for an active goal associated with a rcl_action_client_t.
rmw_qos_profile_t cancel_service_qos
Definition: action_client.h:44
rcl_allocator_t allocator
Custom allocator for the action client, used for incidental allocations.
Definition: action_client.h:49
RCL_ACTION_PUBLIC rcl_action_client_options_t rcl_action_client_get_default_options(void)
Return the default action client options in a rcl_action_client_options_t.
RCL_ACTION_PUBLIC rcl_ret_t rcl_action_send_goal_request(const rcl_action_client_t *action_client, const void *ros_goal_request, int64_t *sequence_number)
Send a ROS goal using a rcl_action_client_t.