ROS 2 rclcpp + rcl - jazzy  jazzy
ROS 2 C++ Client Library with ROS Client Library
Classes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables > Class Template Reference

WaitSet policy that explicitly provides fixed sized storage only. More...

#include <rclcpp/wait_set_policies/static_storage.hpp>

Inheritance diagram for rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >:
Inheritance graph
[legend]
Collaboration diagram for rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >:
Collaboration graph
[legend]

Classes

class  SubscriptionEntry
 
struct  WaitableEntry
 

Protected Types

using is_mutable = std::false_type
 
using ArrayOfSubscriptions = std::array< SubscriptionEntry, NumberOfSubscriptions >
 
using SubscriptionsIterable = ArrayOfSubscriptions
 
using ArrayOfGuardConditions = std::array< std::shared_ptr< rclcpp::GuardCondition >, NumberOfGuardCondtions >
 
using GuardConditionsIterable = ArrayOfGuardConditions
 
using ArrayOfTimers = std::array< std::shared_ptr< rclcpp::TimerBase >, NumberOfTimers >
 
using TimersIterable = ArrayOfTimers
 
using ArrayOfClients = std::array< std::shared_ptr< rclcpp::ClientBase >, NumberOfClients >
 
using ClientsIterable = ArrayOfClients
 
using ArrayOfServices = std::array< std::shared_ptr< rclcpp::ServiceBase >, NumberOfServices >
 
using ServicesIterable = ArrayOfServices
 
using ArrayOfWaitables = std::array< WaitableEntry, NumberOfWaitables >
 
using WaitablesIterable = ArrayOfWaitables
 

Protected Member Functions

template<class ArrayOfExtraGuardConditions >
 StaticStorage (const ArrayOfSubscriptions &subscriptions, const ArrayOfGuardConditions &guard_conditions, const ArrayOfExtraGuardConditions &extra_guard_conditions, const ArrayOfTimers &timers, const ArrayOfClients &clients, const ArrayOfServices &services, const ArrayOfWaitables &waitables, rclcpp::Context::SharedPtr context)
 
template<class ArrayOfExtraGuardConditions >
void storage_rebuild_rcl_wait_set (const ArrayOfExtraGuardConditions &extra_guard_conditions)
 
void storage_acquire_ownerships ()
 
void storage_release_ownerships ()
 
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
 
ArrayOfSubscriptions::value_type subscriptions (size_t ii) const
 
ArrayOfTimers::value_type timers (size_t ii) const
 
ArrayOfClients::value_type clients (size_t ii) const
 
ArrayOfServices::value_type services (size_t ii) const
 
ArrayOfWaitables::value_type waitables (size_t ii) const
 
- Protected Member Functions inherited from rclcpp::wait_set_policies::detail::StoragePolicyCommon< true >
 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)
 
std::pair< void *, EntityT * > get_raw_pointer_from_smart_pointer (const std::shared_ptr< EntityT > &shared_pointer)
 
std::pair< std::shared_ptr< EntityT >, EntityT * > get_raw_pointer_from_smart_pointer (const std::weak_ptr< EntityT > &weak_pointer)
 
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
 
SubscriptionsIterable::value_type subscriptions (size_t) const
 
TimersIterable::value_type timers (size_t) const
 
ClientsIterable::value_type clients (size_t) const
 
ServicesIterable::value_type services (size_t) const
 
WaitablesIterable::value_type waitables (size_t) const
 

Protected Attributes

const ArrayOfSubscriptions subscriptions_
 
const ArrayOfGuardConditions guard_conditions_
 
const ArrayOfTimers timers_
 
const ArrayOfClients clients_
 
const ArrayOfServices services_
 
const ArrayOfWaitables waitables_
 
- Protected Attributes inherited from rclcpp::wait_set_policies::detail::StoragePolicyCommon< true >
rcl_wait_set_t rcl_wait_set_
 
rclcpp::Context::SharedPtr context_
 
bool needs_pruning_
 
bool needs_resize_
 

Detailed Description

template<std::size_t NumberOfSubscriptions, std::size_t NumberOfGuardCondtions, std::size_t NumberOfTimers, std::size_t NumberOfClients, std::size_t NumberOfServices, std::size_t NumberOfWaitables>
class rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >

WaitSet policy that explicitly provides fixed sized storage only.

Note the underlying rcl_wait_set_t is still dynamically allocated, but only once during construction, and deallocated once during destruction.

Definition at line 51 of file static_storage.hpp.


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