rcl_action  master
C API providing common functionality for ROS actions.
wait.h
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__WAIT_H_
16 #define RCL_ACTION__WAIT_H_
17 
18 #ifdef __cplusplus
19 extern "C"
20 {
21 #endif
22 
23 #include "rcl_action/action_client.h"
24 #include "rcl_action/action_server.h"
25 #include "rcl_action/visibility_control.h"
26 #include "rcl/wait.h"
27 
29 
67 RCL_ACTION_PUBLIC
68 RCL_WARN_UNUSED
69 rcl_ret_t
70 rcl_action_wait_set_add_action_client(
71  rcl_wait_set_t * wait_set,
72  const rcl_action_client_t * action_client,
73  size_t * client_index,
74  size_t * subscription_index);
75 
77 
108 RCL_ACTION_PUBLIC
109 RCL_WARN_UNUSED
110 rcl_ret_t
111 rcl_action_wait_set_add_action_server(
112  rcl_wait_set_t * wait_set,
113  const rcl_action_server_t * action_server,
114  size_t * service_index);
115 
117 
145 RCL_ACTION_PUBLIC
146 RCL_WARN_UNUSED
147 rcl_ret_t
148 rcl_action_client_wait_set_get_num_entities(
149  const rcl_action_client_t * action_client,
150  size_t * num_subscriptions,
151  size_t * num_guard_conditions,
152  size_t * num_timers,
153  size_t * num_clients,
154  size_t * num_services);
155 
157 
185 RCL_ACTION_PUBLIC
186 RCL_WARN_UNUSED
187 rcl_ret_t
188 rcl_action_server_wait_set_get_num_entities(
189  const rcl_action_server_t * action_server,
190  size_t * num_subscriptions,
191  size_t * num_guard_conditions,
192  size_t * num_timers,
193  size_t * num_clients,
194  size_t * num_services);
195 
197 
229 RCL_ACTION_PUBLIC
230 RCL_WARN_UNUSED
231 rcl_ret_t
232 rcl_action_client_wait_set_get_entities_ready(
233  const rcl_wait_set_t * wait_set,
234  const rcl_action_client_t * action_client,
235  bool * is_feedback_ready,
236  bool * is_status_ready,
237  bool * is_goal_response_ready,
238  bool * is_cancel_response_ready,
239  bool * is_result_response_ready);
240 
242 
270 RCL_ACTION_PUBLIC
271 RCL_WARN_UNUSED
272 rcl_ret_t
273 rcl_action_server_wait_set_get_entities_ready(
274  const rcl_wait_set_t * wait_set,
275  const rcl_action_server_t * action_server,
276  bool * is_goal_request_ready,
277  bool * is_cancel_request_ready,
278  bool * is_result_request_ready,
279  bool * is_goal_expired);
280 
281 #ifdef __cplusplus
282 }
283 #endif
284 
285 #endif // RCL_ACTION__WAIT_H_
rcl_action_server_t
Structure which encapsulates a ROS Action Server.
Definition: action_server.h:36
rcl_wait_set_t
rcl_action_client_t
Structure which encapsulates a ROS action client.
Definition: action_client.h:33