15 #ifndef RCLCPP__DETAIL__SUBSCRIPTION_CALLBACK_TYPE_HELPER_HPP_
16 #define RCLCPP__DETAIL__SUBSCRIPTION_CALLBACK_TYPE_HELPER_HPP_
19 #include <type_traits>
21 #include "rclcpp/function_traits.hpp"
22 #include "rclcpp/message_info.hpp"
64 template<
typename MessageT,
typename CallbackT,
typename Enable =
void>
67 using callback_type =
typename rclcpp::function_traits::as_std_function<CallbackT>::type;
70 template<
typename MessageT,
typename CallbackT>
74 typename std::enable_if_t<
75 rclcpp::function_traits::same_arguments<
77 std::function<void(std::shared_ptr<const MessageT>)>
82 using callback_type = std::function<void (std::shared_ptr<const MessageT>)>;
85 template<
typename MessageT,
typename CallbackT>
89 typename std::enable_if_t<
90 rclcpp::function_traits::same_arguments<
92 std::function<void(std::shared_ptr<const MessageT>, const rclcpp::MessageInfo &)>
101 template<
typename MessageT,
typename CallbackT>
105 typename std::enable_if_t<
106 rclcpp::function_traits::same_arguments<
108 std::function<void(const std::shared_ptr<const MessageT> &)>
113 using callback_type = std::function<void (
const std::shared_ptr<const MessageT> &)>;
116 template<
typename MessageT,
typename CallbackT>
120 typename std::enable_if_t<
121 rclcpp::function_traits::same_arguments<
123 std::function<void(const std::shared_ptr<const MessageT> &, const rclcpp::MessageInfo &)>
128 using callback_type =
129 std::function<void (
const std::shared_ptr<const MessageT> &,
const rclcpp::MessageInfo &)>;
132 template<
typename MessageT,
typename CallbackT>
136 typename std::enable_if_t<
137 rclcpp::function_traits::same_arguments<
139 std::function<void(std::shared_ptr<MessageT>)>
144 using callback_type = std::function<void (std::shared_ptr<MessageT>)>;
147 template<
typename MessageT,
typename CallbackT>
151 typename std::enable_if_t<
152 rclcpp::function_traits::same_arguments<
154 std::function<void(std::shared_ptr<MessageT>, const rclcpp::MessageInfo &)>
159 using callback_type =
Additional meta data about messages taken from subscriptions.
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.
Template metaprogramming helper used to resolve the callback argument into a std::function.