ROS 2 rclcpp + rcl - humble  humble
ROS 2 C++ Client Library with ROS Client Library
node_services.hpp
1 // Copyright 2016 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 RCLCPP__NODE_INTERFACES__NODE_SERVICES_HPP_
16 #define RCLCPP__NODE_INTERFACES__NODE_SERVICES_HPP_
17 
18 #include <string>
19 
20 #include "rclcpp/callback_group.hpp"
21 #include "rclcpp/client.hpp"
22 #include "rclcpp/macros.hpp"
23 #include "rclcpp/node_interfaces/node_base_interface.hpp"
24 #include "rclcpp/node_interfaces/node_services_interface.hpp"
25 #include "rclcpp/service.hpp"
26 #include "rclcpp/visibility_control.hpp"
27 
28 namespace rclcpp
29 {
30 namespace node_interfaces
31 {
32 
35 {
36 public:
37  RCLCPP_SMART_PTR_ALIASES_ONLY(NodeServices)
38 
39  RCLCPP_PUBLIC
41 
42  RCLCPP_PUBLIC
43  virtual
44  ~NodeServices();
45 
46  RCLCPP_PUBLIC
47  void
48  add_client(
49  rclcpp::ClientBase::SharedPtr client_base_ptr,
50  rclcpp::CallbackGroup::SharedPtr group) override;
51 
52  RCLCPP_PUBLIC
53  void
54  add_service(
55  rclcpp::ServiceBase::SharedPtr service_base_ptr,
56  rclcpp::CallbackGroup::SharedPtr group) override;
57 
58  RCLCPP_PUBLIC
59  std::string
60  resolve_service_name(const std::string & name, bool only_expand = false) const override;
61 
62 private:
63  RCLCPP_DISABLE_COPY(NodeServices)
64 
66 };
67 
68 } // namespace node_interfaces
69 } // namespace rclcpp
70 
71 #endif // RCLCPP__NODE_INTERFACES__NODE_SERVICES_HPP_
Pure virtual interface class for the NodeBase part of the Node API.
Pure virtual interface class for the NodeServices part of the Node API.
Implementation of the NodeServices part of the Node API.
RCLCPP_PUBLIC std::string resolve_service_name(const std::string &name, bool only_expand=false) const override
Get the remapped and expanded service name given a input name.
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.