ROS 2 rclcpp + rcl - humble  humble
ROS 2 C++ Client Library with ROS Client Library
node_waitables.hpp
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 RCLCPP__NODE_INTERFACES__NODE_WAITABLES_HPP_
16 #define RCLCPP__NODE_INTERFACES__NODE_WAITABLES_HPP_
17 
18 #include "rclcpp/callback_group.hpp"
19 #include "rclcpp/macros.hpp"
20 #include "rclcpp/node_interfaces/node_base_interface.hpp"
21 #include "rclcpp/node_interfaces/node_waitables_interface.hpp"
22 #include "rclcpp/waitable.hpp"
23 #include "rclcpp/visibility_control.hpp"
24 
25 namespace rclcpp
26 {
27 namespace node_interfaces
28 {
29 
32 {
33 public:
34  RCLCPP_SMART_PTR_ALIASES_ONLY(NodeWaitables)
35 
36  RCLCPP_PUBLIC
38 
39  RCLCPP_PUBLIC
40  virtual
41  ~NodeWaitables();
42 
43  RCLCPP_PUBLIC
44  void
45  add_waitable(
46  rclcpp::Waitable::SharedPtr waitable_base_ptr,
47  rclcpp::CallbackGroup::SharedPtr group) override;
48 
49  RCLCPP_PUBLIC
50  void
52  rclcpp::Waitable::SharedPtr waitable_ptr,
53  rclcpp::CallbackGroup::SharedPtr group) noexcept override;
54 
55 private:
56  RCLCPP_DISABLE_COPY(NodeWaitables)
57 
59 };
60 
61 } // namespace node_interfaces
62 } // namespace rclcpp
63 
64 #endif // RCLCPP__NODE_INTERFACES__NODE_WAITABLES_HPP_
Pure virtual interface class for the NodeBase part of the Node API.
Pure virtual interface class for the NodeWaitables part of the Node API.
Implementation of the NodeWaitables part of the Node API.
RCLCPP_PUBLIC void remove_waitable(rclcpp::Waitable::SharedPtr waitable_ptr, rclcpp::CallbackGroup::SharedPtr group) noexcept override
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.