15 #ifndef RCLCPP__NODE_INTERFACES__NODE_INTERFACES_HPP_
16 #define RCLCPP__NODE_INTERFACES__NODE_INTERFACES_HPP_
21 #include "rclcpp/detail/template_unique.hpp"
22 #include "rclcpp/node_interfaces/detail/node_interfaces_helpers.hpp"
24 #define ALL_RCLCPP_NODE_INTERFACES \
25 rclcpp::node_interfaces::NodeBaseInterface, \
26 rclcpp::node_interfaces::NodeClockInterface, \
27 rclcpp::node_interfaces::NodeGraphInterface, \
28 rclcpp::node_interfaces::NodeLoggingInterface, \
29 rclcpp::node_interfaces::NodeParametersInterface, \
30 rclcpp::node_interfaces::NodeServicesInterface, \
31 rclcpp::node_interfaces::NodeTimeSourceInterface, \
32 rclcpp::node_interfaces::NodeTimersInterface, \
33 rclcpp::node_interfaces::NodeTopicsInterface, \
34 rclcpp::node_interfaces::NodeWaitablesInterface
39 namespace node_interfaces
44 template<
typename ... InterfaceTs>
47 detail::NodeInterfacesStorage<InterfaceTs ...>,
51 detail::NodeInterfacesStorage<InterfaceTs ...>,
56 0 !=
sizeof ...(InterfaceTs),
57 "must provide at least one interface as a template argument");
59 rclcpp::detail::template_unique_v<InterfaceTs ...>,
60 "must provide unique template parameters");
146 template<
typename NodeT>
152 template<
typename NodeT>
157 throw std::invalid_argument(
"given node pointer is nullptr");
A helper class for aggregating node interfaces.
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.
Stores the interfaces in a tuple, provides constructors, and getters.
Prototype of NodeInterfacesSupportCheck template meta-function.
Prototype of NodeInterfacesSupports.