.. _program_listing_file_include_rcl_service.h: Program Listing for File service.h ================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/rcl/service.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // Copyright 2016 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__SERVICE_H_ #define RCL__SERVICE_H_ #ifdef __cplusplus extern "C" { #endif #include "rosidl_runtime_c/service_type_support_struct.h" #include "rcl/allocator.h" #include "rcl/event_callback.h" #include "rcl/macros.h" #include "rcl/node.h" #include "rcl/publisher.h" #include "rcl/service_introspection.h" #include "rcl/time.h" #include "rcl/visibility_control.h" #include "rmw/types.h" typedef struct rcl_service_impl_s rcl_service_impl_t; typedef struct rcl_service_s { rcl_service_impl_t * impl; } rcl_service_t; typedef struct rcl_service_options_s { rmw_qos_profile_t qos; rcl_allocator_t allocator; } rcl_service_options_t; RCL_PUBLIC RCL_WARN_UNUSED rcl_service_t rcl_get_zero_initialized_service(void); RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t 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); RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_service_fini(rcl_service_t * service, rcl_node_t * node); RCL_PUBLIC RCL_WARN_UNUSED rcl_service_options_t rcl_service_get_default_options(void); RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_take_request_with_info( const rcl_service_t * service, rmw_service_info_t * request_header, void * ros_request); RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_take_request( const rcl_service_t * service, rmw_request_id_t * request_header, void * ros_request); RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_send_response( const rcl_service_t * service, rmw_request_id_t * response_header, void * ros_response); RCL_PUBLIC RCL_WARN_UNUSED const char * rcl_service_get_service_name(const rcl_service_t * service); RCL_PUBLIC RCL_WARN_UNUSED const rcl_service_options_t * rcl_service_get_options(const rcl_service_t * service); RCL_PUBLIC RCL_WARN_UNUSED rmw_service_t * rcl_service_get_rmw_handle(const rcl_service_t * service); RCL_PUBLIC bool rcl_service_is_valid(const rcl_service_t * service); RCL_PUBLIC RCL_WARN_UNUSED const rmw_qos_profile_t * rcl_service_request_subscription_get_actual_qos(const rcl_service_t * service); RCL_PUBLIC RCL_WARN_UNUSED const rmw_qos_profile_t * rcl_service_response_publisher_get_actual_qos(const rcl_service_t * service); RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_service_set_on_new_request_callback( const rcl_service_t * service, rcl_event_callback_t callback, const void * user_data); RCL_PUBLIC RCL_WARN_UNUSED rcl_ret_t rcl_service_configure_service_introspection( rcl_service_t * service, rcl_node_t * node, rcl_clock_t * clock, const rosidl_service_type_support_t * type_support, const rcl_publisher_options_t publisher_options, rcl_service_introspection_state_t introspection_state); #ifdef __cplusplus } #endif #endif // RCL__SERVICE_H_