3 #include "rclcpp/rclcpp.hpp" 6 #include "rosbag2_cpp/typesupport_helpers.hpp" 7 #include "rosidl_typesupport_introspection_cpp/message_introspection.hpp" 39 const rosidl_message_type_support_t* _type_support =
nullptr;
50 _type_support = rosidl_typesupport_cpp::get_message_type_support_handle<T>();
56 rcutils_uint8_array_t msg_ref;
57 msg_ref.buffer = serialized_msg.
data();
58 msg_ref.buffer_length = serialized_msg.
size();
60 if (RMW_RET_OK != rmw_deserialize(&msg_ref, _type_support, &msg))
62 throw std::runtime_error(
"failed to deserialize message");
64 parseMessageImpl(msg, timestamp);
68 virtual void parseMessageImpl(
const T&
msg,
double& timestamp) = 0;
75 const std::string& topic_type,
78 _intropection_parser(topic_name, topic_type)
80 _type_support = _intropection_parser.topicInfo().type_support;
83 bool parseMessage(
MessageRef serialized_msg,
double& timestamp)
override;
96 void registerMessageType(
const std::string& topic_name,
97 const std::string& topic_type);
99 const rosidl_message_type_support_t* typeSupport(
const std::string& topic_name)
const;
IntrospectionParser(const std::string &topic_name, const std::string &topic_type, PlotDataMapRef &plot_data)
virtual bool parseMessage(MessageRef serialized_msg, double ×tamp)
Ros2Introspection::FlatMessage _flat_msg
BuiltinMessageParser(const std::string &topic_name, PlotDataMapRef &plot_data)
Ros2Introspection::Parser _intropection_parser
Ros2MessageParser(const std::string &topic_name, PJ::PlotDataMapRef &plot_data)
Ros2CompositeParser(PlotDataMapRef &plot_data)
const rosidl_message_type_support_t * typeSupport() const
const uint8_t * data() const
const rosidl_message_type_support_t * type_support