22#define __ros_middleware_interface__functions__h__
33
44#include " rosidl_generator_cpp/MessageTypeSupport.h"
5+ #include " rosidl_generator_cpp/ServiceTypeSupport.h"
56
67#include " handles.h"
78
89namespace ros_middleware_interface
910{
1011
12+ typedef enum
13+ {
14+ ROS2_RETCODE_OK = 0 ,
15+ ROS2_RETCODE_ERROR = 1 ,
16+ } ROS2_RETCODE_t;
17+
1118void init ();
1219
1320NodeHandle create_node ();
@@ -27,8 +34,21 @@ GuardConditionHandle create_guard_condition();
2734
2835void trigger_guard_condition (const GuardConditionHandle& guard_condition_handle);
2936
30- void wait (SubscriberHandles& subscriber_handles, GuardConditionHandles& guard_condition_handles, bool non_blocking);
37+ void wait (SubscriberHandles& subscriber_handles, GuardConditionHandles& guard_condition_handles, ServiceHandles& service_handles, ClientHandles& client_handles, bool non_blocking);
38+
39+ ClientHandle create_client (const NodeHandle& node_handle, const rosidl_generator_cpp::ServiceTypeSupportHandle & service_type_support_handle, const char * service_name);
40+
41+ int64_t send_request (const ClientHandle& client_handle, const void * ros_request);
42+
43+ ROS2_RETCODE_t receive_response (const ClientHandle& client_handle, void * ros_response);
44+
45+ bool take_response (const ClientHandle& client_handle, void * ros_response, void * ros_request_header);
46+
47+ ServiceHandle create_service (const NodeHandle& node_handle, const rosidl_generator_cpp::ServiceTypeSupportHandle & service_type_support_handle, const char * service_name);
48+
49+ bool take_request (const ServiceHandle& service_handle, void * ros_request, void * ros_request_header);
3150
51+ void send_response (const ServiceHandle& service_handle, void * ros_request_header, void * ros_response);
3252}
3353
3454#endif // __ros_middleware_interface__functions__h__
0 commit comments