ROS 2 rclcpp + rcl - rolling  rolling-a919a6e5
ROS 2 C++ Client Library with ROS Client Library
Public Types | Public Member Functions | Static Public Member Functions | List of all members
rclcpp::memory_strategy::MemoryStrategy Class Referenceabstract

Delegate for handling memory allocations while the Executor is executing. More...

#include <rclcpp/memory_strategy.hpp>

Inheritance diagram for rclcpp::memory_strategy::MemoryStrategy:
Inheritance graph
[legend]

Public Types

using WeakCallbackGroupsToNodesMap = std::map< rclcpp::CallbackGroup::WeakPtr, rclcpp::node_interfaces::NodeBaseInterface::WeakPtr, std::owner_less< rclcpp::CallbackGroup::WeakPtr > >
 

Public Member Functions

virtual bool collect_entities (const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)=0
 
virtual size_t number_of_ready_subscriptions () const =0
 
virtual size_t number_of_ready_services () const =0
 
virtual size_t number_of_ready_clients () const =0
 
virtual size_t number_of_ready_events () const =0
 
virtual size_t number_of_ready_timers () const =0
 
virtual size_t number_of_guard_conditions () const =0
 
virtual size_t number_of_waitables () const =0
 
virtual void add_waitable_handle (const rclcpp::Waitable::SharedPtr &waitable)=0
 
virtual bool add_handles_to_wait_set (rcl_wait_set_t *wait_set)=0
 
virtual void clear_handles ()=0
 
virtual void remove_null_handles (rcl_wait_set_t *wait_set)=0
 
virtual void add_guard_condition (const rclcpp::GuardCondition &guard_condition)=0
 
virtual void remove_guard_condition (const rclcpp::GuardCondition *guard_condition)=0
 
virtual void get_next_subscription (rclcpp::AnyExecutable &any_exec, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)=0
 
virtual void get_next_service (rclcpp::AnyExecutable &any_exec, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)=0
 
virtual void get_next_client (rclcpp::AnyExecutable &any_exec, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)=0
 
virtual void get_next_timer (rclcpp::AnyExecutable &any_exec, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)=0
 
virtual void get_next_waitable (rclcpp::AnyExecutable &any_exec, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)=0
 
virtual rcl_allocator_t get_allocator ()=0
 

Static Public Member Functions

static rclcpp::SubscriptionBase::SharedPtr get_subscription_by_handle (const std::shared_ptr< const rcl_subscription_t > &subscriber_handle, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)
 
static rclcpp::ServiceBase::SharedPtr get_service_by_handle (const std::shared_ptr< const rcl_service_t > &service_handle, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)
 
static rclcpp::ClientBase::SharedPtr get_client_by_handle (const std::shared_ptr< const rcl_client_t > &client_handle, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)
 
static rclcpp::TimerBase::SharedPtr get_timer_by_handle (const std::shared_ptr< const rcl_timer_t > &timer_handle, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)
 
static rclcpp::node_interfaces::NodeBaseInterface::SharedPtr get_node_by_group (const rclcpp::CallbackGroup::SharedPtr &group, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)
 
static rclcpp::CallbackGroup::SharedPtr get_group_by_subscription (const rclcpp::SubscriptionBase::SharedPtr &subscription, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)
 
static rclcpp::CallbackGroup::SharedPtr get_group_by_service (const rclcpp::ServiceBase::SharedPtr &service, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)
 
static rclcpp::CallbackGroup::SharedPtr get_group_by_client (const rclcpp::ClientBase::SharedPtr &client, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)
 
static rclcpp::CallbackGroup::SharedPtr get_group_by_timer (const rclcpp::TimerBase::SharedPtr &timer, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)
 
static rclcpp::CallbackGroup::SharedPtr get_group_by_waitable (const rclcpp::Waitable::SharedPtr &waitable, const WeakCallbackGroupsToNodesMap &weak_groups_to_nodes)
 

Detailed Description

Delegate for handling memory allocations while the Executor is executing.

By default, the memory strategy dynamically allocates memory for structures that come in from the rmw implementation after the executor waits for work, based on the number of entities that come through.

Definition at line 42 of file memory_strategy.hpp.


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