15 #ifndef RCLCPP__EXPERIMENTAL__ROS_MESSAGE_INTRA_PROCESS_BUFFER_HPP_
16 #define RCLCPP__EXPERIMENTAL__ROS_MESSAGE_INTRA_PROCESS_BUFFER_HPP_
21 #include "rcl/error_handling.h"
23 #include "rclcpp/any_subscription_callback.hpp"
24 #include "rclcpp/context.hpp"
25 #include "rclcpp/experimental/subscription_intra_process_base.hpp"
26 #include "tracetools/tracetools.h"
30 namespace experimental
35 typename Alloc = std::allocator<void>,
36 typename Deleter = std::default_delete<void>
41 using ROSMessageTypeAllocatorTraits = allocator::AllocRebind<RosMessageT, Alloc>;
42 using ROSMessageTypeAllocator =
typename ROSMessageTypeAllocatorTraits::allocator_type;
43 using ROSMessageTypeDeleter = allocator::Deleter<ROSMessageTypeAllocator, RosMessageT>;
45 using ConstMessageSharedPtr = std::shared_ptr<const RosMessageT>;
46 using MessageUniquePtr = std::unique_ptr<RosMessageT, ROSMessageTypeDeleter>;
49 rclcpp::Context::SharedPtr context,
50 const std::string & topic_name,
59 provide_intra_process_message(ConstMessageSharedPtr message) = 0;
62 provide_intra_process_message(MessageUniquePtr message) = 0;
Encapsulation of Quality of Service settings.
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.