ROS 2 rclcpp + rcl - kilted  kilted
ROS 2 C++ Client Library with ROS Client Library
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
rclcpp::experimental::SubscriptionIntraProcessBuffer< SubscribedType, Alloc, Deleter, ROSMessageType > Class Template Reference
Inheritance diagram for rclcpp::experimental::SubscriptionIntraProcessBuffer< SubscribedType, Alloc, Deleter, ROSMessageType >:
Inheritance graph
[legend]
Collaboration diagram for rclcpp::experimental::SubscriptionIntraProcessBuffer< SubscribedType, Alloc, Deleter, ROSMessageType >:
Collaboration graph
[legend]

Public Types

using SubscribedTypeAllocatorTraits = allocator::AllocRebind< SubscribedType, Alloc >
 
using SubscribedTypeAllocator = typename SubscribedTypeAllocatorTraits::allocator_type
 
using SubscribedTypeDeleter = allocator::Deleter< SubscribedTypeAllocator, SubscribedType >
 
using ROSMessageTypeAllocatorTraits = allocator::AllocRebind< ROSMessageType, Alloc >
 
using ROSMessageTypeAllocator = typename ROSMessageTypeAllocatorTraits::allocator_type
 
using ROSMessageTypeDeleter = allocator::Deleter< ROSMessageTypeAllocator, ROSMessageType >
 
using ConstMessageSharedPtr = std::shared_ptr< const ROSMessageType >
 
using MessageUniquePtr = std::unique_ptr< ROSMessageType, ROSMessageTypeDeleter >
 
using ConstDataSharedPtr = std::shared_ptr< const SubscribedType >
 
using SubscribedTypeUniquePtr = std::unique_ptr< SubscribedType, SubscribedTypeDeleter >
 
using BufferUniquePtr = typename rclcpp::experimental::buffers::IntraProcessBuffer< SubscribedType, Alloc, SubscribedTypeDeleter >::UniquePtr
 
- Public Types inherited from rclcpp::experimental::SubscriptionROSMsgIntraProcessBuffer< SubscribedType, allocator::AllocRebind< SubscribedType, std::allocator< SubscribedType > >::allocator_type, allocator::Deleter< allocator::AllocRebind< SubscribedType, std::allocator< SubscribedType > >::allocator_type, SubscribedType > >
using ROSMessageTypeAllocatorTraits = allocator::AllocRebind< SubscribedType, allocator::AllocRebind< SubscribedType, std::allocator< SubscribedType > >::allocator_type >
 
using ROSMessageTypeAllocator = typename ROSMessageTypeAllocatorTraits::allocator_type
 
using ROSMessageTypeDeleter = allocator::Deleter< ROSMessageTypeAllocator, SubscribedType >
 
using ConstMessageSharedPtr = std::shared_ptr< const SubscribedType >
 
using MessageUniquePtr = std::unique_ptr< SubscribedType, ROSMessageTypeDeleter >
 
- Public Types inherited from rclcpp::experimental::SubscriptionIntraProcessBase
enum class  EntityType : std::size_t { Subscription }
 

Public Member Functions

 SubscriptionIntraProcessBuffer (std::shared_ptr< Alloc > allocator, rclcpp::Context::SharedPtr context, const std::string &topic_name, const rclcpp::QoS &qos_profile, rclcpp::IntraProcessBufferType buffer_type)
 
void add_to_wait_set (rcl_wait_set_t &wait_set) override
 Add the Waitable to a wait set. More...
 
bool is_ready ([[maybe_unused]] const rcl_wait_set_t &wait_set) override
 
SubscribedTypeUniquePtr convert_ros_message_to_subscribed_type_unique_ptr (const ROSMessageType &msg)
 
void provide_intra_process_message (ConstMessageSharedPtr message) override
 
void provide_intra_process_message (MessageUniquePtr message) override
 
void provide_intra_process_data (ConstDataSharedPtr message)
 
void provide_intra_process_data (SubscribedTypeUniquePtr message)
 
bool use_take_shared_method () const override
 
size_t available_capacity () const override
 
- Public Member Functions inherited from rclcpp::experimental::SubscriptionROSMsgIntraProcessBuffer< SubscribedType, allocator::AllocRebind< SubscribedType, std::allocator< SubscribedType > >::allocator_type, allocator::Deleter< allocator::AllocRebind< SubscribedType, std::allocator< SubscribedType > >::allocator_type, SubscribedType > >
 SubscriptionROSMsgIntraProcessBuffer (rclcpp::Context::SharedPtr context, const std::string &topic_name, const rclcpp::QoS &qos_profile)
 
virtual void provide_intra_process_message (ConstMessageSharedPtr message)=0
 
virtual void provide_intra_process_message (MessageUniquePtr message)=0
 
- Public Member Functions inherited from rclcpp::experimental::SubscriptionIntraProcessBase
RCLCPP_PUBLIC SubscriptionIntraProcessBase (rclcpp::Context::SharedPtr context, const std::string &topic_name, const rclcpp::QoS &qos_profile)
 
RCLCPP_PUBLIC size_t get_number_of_ready_guard_conditions () override
 Get the number of ready guard_conditions. More...
 
RCLCPP_PUBLIC bool is_durability_transient_local () const
 
bool is_ready (const rcl_wait_set_t &wait_set) override=0
 Check if the Waitable is ready. More...
 
std::shared_ptr< void > take_data () override=0
 Take the data so that it can be consumed with execute. More...
 
std::shared_ptr< void > take_data_by_entity_id ([[maybe_unused]] size_t id) override
 
void execute (const std::shared_ptr< void > &data) override=0
 Execute data that is passed in. More...
 
RCLCPP_PUBLIC const char * get_topic_name () const
 
RCLCPP_PUBLIC QoS get_actual_qos () const
 
void set_on_ready_callback (std::function< void(size_t, int)> callback) override
 Set a callback to be called when each new message arrives. More...
 
void clear_on_ready_callback () override
 Unset the callback registered for new messages, if any.
 
RCLCPP_PUBLIC std::vector< std::shared_ptr< rclcpp::TimerBase > > get_timers () const override
 Returns all timers used by this waitable. More...
 
- Public Member Functions inherited from rclcpp::Waitable
virtual RCLCPP_PUBLIC size_t get_number_of_ready_subscriptions ()
 Get the number of ready subscriptions. More...
 
virtual RCLCPP_PUBLIC size_t get_number_of_ready_timers ()
 Get the number of ready timers. More...
 
virtual RCLCPP_PUBLIC size_t get_number_of_ready_clients ()
 Get the number of ready clients. More...
 
virtual RCLCPP_PUBLIC size_t get_number_of_ready_events ()
 Get the number of ready events. More...
 
virtual RCLCPP_PUBLIC size_t get_number_of_ready_services ()
 Get the number of ready services. More...
 
virtual RCLCPP_PUBLIC std::shared_ptr< void > take_data_by_entity_id (size_t id)=0
 Take the data so that it can be consumed with execute. More...
 
RCLCPP_PUBLIC bool exchange_in_use_by_wait_set_state (bool in_use_state)
 Exchange the "in use by wait set" state for this timer. More...
 

Protected Member Functions

void trigger_guard_condition () override
 
- Protected Member Functions inherited from rclcpp::experimental::SubscriptionIntraProcessBase
void invoke_on_new_message ()
 

Protected Attributes

BufferUniquePtr buffer_
 
SubscribedTypeAllocator subscribed_type_allocator_
 
SubscribedTypeDeleter subscribed_type_deleter_
 
- Protected Attributes inherited from rclcpp::experimental::SubscriptionIntraProcessBase
std::recursive_mutex callback_mutex_
 
std::function< void(size_t)> on_new_message_callback_ {nullptr}
 
size_t unread_count_ {0}
 
rclcpp::GuardCondition gc_
 

Detailed Description

template<typename SubscribedType, typename Alloc = std::allocator<SubscribedType>, typename Deleter = std::default_delete<SubscribedType>, typename ROSMessageType = SubscribedType>
class rclcpp::experimental::SubscriptionIntraProcessBuffer< SubscribedType, Alloc, Deleter, ROSMessageType >

Definition at line 50 of file subscription_intra_process_buffer.hpp.

Member Function Documentation

◆ add_to_wait_set()

template<typename SubscribedType , typename Alloc = std::allocator<SubscribedType>, typename Deleter = std::default_delete<SubscribedType>, typename ROSMessageType = SubscribedType>
void rclcpp::experimental::SubscriptionIntraProcessBuffer< SubscribedType, Alloc, Deleter, ROSMessageType >::add_to_wait_set ( rcl_wait_set_t wait_set)
inlineoverridevirtual

Add the Waitable to a wait set.

Parameters
[in]wait_setA handle to the wait set to add the Waitable to.
Exceptions
rclcpp::execptions::RCLErrorfrom rcl_wait_set_add_*()

Reimplemented from rclcpp::experimental::SubscriptionIntraProcessBase.

Definition at line 104 of file subscription_intra_process_buffer.hpp.

Referenced by rclcpp::experimental::SubscriptionIntraProcess< MessageT, SubscribedType, SubscribedTypeAlloc, SubscribedTypeDeleter, ROSMessageType, Alloc >::add_to_wait_set().

Here is the caller graph for this function:

The documentation for this class was generated from the following file: