ROS 2 rclcpp + rcl - jazzy  jazzy
ROS 2 C++ Client Library with ROS Client Library
Protected Member Functions | Protected Attributes | List of all members
rclcpp::wait_set_policies::detail::StoragePolicyCommon< HasStrongOwnership > Class Template Reference

Common structure for storage policies, which provides rcl wait set access. More...

#include <rclcpp/wait_set_policies/detail/storage_policy_common.hpp>

Collaboration diagram for rclcpp::wait_set_policies::detail::StoragePolicyCommon< HasStrongOwnership >:
Collaboration graph
[legend]

Protected Member Functions

template<class SubscriptionsIterable , class GuardConditionsIterable , class ExtraGuardConditionsIterable , class TimersIterable , class ClientsIterable , class ServicesIterable , class WaitablesIterable >
 StoragePolicyCommon (const SubscriptionsIterable &subscriptions, const GuardConditionsIterable &guard_conditions, const ExtraGuardConditionsIterable &extra_guard_conditions, const TimersIterable &timers, const ClientsIterable &clients, const ServicesIterable &services, const WaitablesIterable &waitables, rclcpp::Context::SharedPtr context)
 
template<class EntityT >
std::pair< void *, EntityT * > get_raw_pointer_from_smart_pointer (const std::shared_ptr< EntityT > &shared_pointer)
 
template<class EntityT >
std::pair< std::shared_ptr< EntityT >, EntityT * > get_raw_pointer_from_smart_pointer (const std::weak_ptr< EntityT > &weak_pointer)
 
template<class SubscriptionsIterable , class GuardConditionsIterable , class ExtraGuardConditionsIterable , class TimersIterable , class ClientsIterable , class ServicesIterable , class WaitablesIterable >
void storage_rebuild_rcl_wait_set_with_sets (const SubscriptionsIterable &subscriptions, const GuardConditionsIterable &guard_conditions, const ExtraGuardConditionsIterable &extra_guard_conditions, const TimersIterable &timers, const ClientsIterable &clients, const ServicesIterable &services, const WaitablesIterable &waitables)
 Rebuild the wait set, preparing it for the next wait call. More...
 
const rcl_wait_set_tstorage_get_rcl_wait_set () const
 
rcl_wait_set_tstorage_get_rcl_wait_set ()
 
void storage_flag_for_resize ()
 
size_t size_of_subscriptions () const
 
size_t size_of_timers () const
 
size_t size_of_clients () const
 
size_t size_of_services () const
 
size_t size_of_waitables () const
 
template<class SubscriptionsIterable >
SubscriptionsIterable::value_type subscriptions (size_t) const
 
template<class TimersIterable >
TimersIterable::value_type timers (size_t) const
 
template<class ClientsIterable >
ClientsIterable::value_type clients (size_t) const
 
template<class ServicesIterable >
ServicesIterable::value_type services (size_t) const
 
template<class WaitablesIterable >
WaitablesIterable::value_type waitables (size_t) const
 

Protected Attributes

rcl_wait_set_t rcl_wait_set_
 
rclcpp::Context::SharedPtr context_
 
bool needs_pruning_ = false
 
bool needs_resize_ = false
 

Detailed Description

template<bool HasStrongOwnership>
class rclcpp::wait_set_policies::detail::StoragePolicyCommon< HasStrongOwnership >

Common structure for storage policies, which provides rcl wait set access.

Definition at line 39 of file storage_policy_common.hpp.

Member Function Documentation

◆ storage_rebuild_rcl_wait_set_with_sets()

template<bool HasStrongOwnership>
template<class SubscriptionsIterable , class GuardConditionsIterable , class ExtraGuardConditionsIterable , class TimersIterable , class ClientsIterable , class ServicesIterable , class WaitablesIterable >
void rclcpp::wait_set_policies::detail::StoragePolicyCommon< HasStrongOwnership >::storage_rebuild_rcl_wait_set_with_sets ( const SubscriptionsIterable &  subscriptions,
const GuardConditionsIterable &  guard_conditions,
const ExtraGuardConditionsIterable &  extra_guard_conditions,
const TimersIterable &  timers,
const ClientsIterable &  clients,
const ServicesIterable &  services,
const WaitablesIterable &  waitables 
)
inlineprotected

Rebuild the wait set, preparing it for the next wait call.

The wait set is rebuilt by:

  • resizing the wait set if needed,
  • clearing the wait set if not already done by resizing, and
  • re-adding the entities.

Definition at line 168 of file storage_policy_common.hpp.

References RCL_RET_OK, rcl_wait_set_add_client(), rcl_wait_set_add_guard_condition(), rcl_wait_set_add_service(), rcl_wait_set_add_subscription(), rcl_wait_set_add_timer(), rcl_wait_set_clear(), and rcl_wait_set_resize().

Here is the call graph for this function:

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