19 #ifndef HELPER_FUNCTIONS__MESSAGE_ADAPTERS_HPP_
20 #define HELPER_FUNCTIONS__MESSAGE_ADAPTERS_HPP_
22 #include <builtin_interfaces/msg/time.hpp>
29 namespace helper_functions
31 namespace message_field_adapters
38 template<
typename T,
typename =
nullptr_t>
42 struct HasHeader<
T, decltype((void)
T::header, nullptr)>: std::true_type {};
51 template<
typename T,
nullptr_t>
60 template<
typename T,
nullptr_t>
68 template<
typename T,
nullptr_t>
77 template<
typename T,
nullptr_t>
82 template<class T, typename std::enable_if<HasHeader<T>::value, nullptr_t>::type =
nullptr>
85 return msg.header.frame_id;
88 template<class T, typename std::enable_if<HasHeader<T>::value, nullptr_t>::type =
nullptr>
91 return msg.header.frame_id;
94 template<class T, typename std::enable_if<HasHeader<T>::value, nullptr_t>::type =
nullptr>
97 return msg.header.stamp;
100 template<class T, typename std::enable_if<HasHeader<T>::value, nullptr_t>::type =
nullptr>
103 return msg.header.stamp;
111 #endif // HELPER_FUNCTIONS__MESSAGE_ADAPTERS_HPP_