rclcpp  master
C++ ROS Client Library API
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 <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)
 
 ~StaticStorage ()=default
 
template<class ArrayOfExtraGuardConditions >
void storage_rebuild_rcl_wait_set (const ArrayOfExtraGuardConditions &extra_guard_conditions)
 
void storage_acquire_ownerships ()
 
void storage_release_ownerships ()
 
- 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)
 
 ~StoragePolicyCommon ()
 
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 ()
 

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.

Member Typedef Documentation

◆ is_mutable

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::is_mutable = std::false_type
protected

◆ ArrayOfSubscriptions

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::ArrayOfSubscriptions = std::array< SubscriptionEntry, NumberOfSubscriptions >
protected

◆ SubscriptionsIterable

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::SubscriptionsIterable = ArrayOfSubscriptions
protected

◆ ArrayOfGuardConditions

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::ArrayOfGuardConditions = std::array< std::shared_ptr<rclcpp::GuardCondition>, NumberOfGuardCondtions >
protected

◆ GuardConditionsIterable

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::GuardConditionsIterable = ArrayOfGuardConditions
protected

◆ ArrayOfTimers

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::ArrayOfTimers = std::array< std::shared_ptr<rclcpp::TimerBase>, NumberOfTimers >
protected

◆ TimersIterable

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::TimersIterable = ArrayOfTimers
protected

◆ ArrayOfClients

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::ArrayOfClients = std::array< std::shared_ptr<rclcpp::ClientBase>, NumberOfClients >
protected

◆ ClientsIterable

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::ClientsIterable = ArrayOfClients
protected

◆ ArrayOfServices

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::ArrayOfServices = std::array< std::shared_ptr<rclcpp::ServiceBase>, NumberOfServices >
protected

◆ ServicesIterable

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::ServicesIterable = ArrayOfServices
protected

◆ ArrayOfWaitables

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::ArrayOfWaitables = std::array< WaitableEntry, NumberOfWaitables >
protected

◆ WaitablesIterable

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>
using rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::WaitablesIterable = ArrayOfWaitables
protected

Constructor & Destructor Documentation

◆ StaticStorage()

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>
template<class ArrayOfExtraGuardConditions >
rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::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 
)
inlineexplicitprotected

◆ ~StaticStorage()

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>
rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::~StaticStorage ( )
protecteddefault

Member Function Documentation

◆ storage_rebuild_rcl_wait_set()

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>
template<class ArrayOfExtraGuardConditions >
void rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::storage_rebuild_rcl_wait_set ( const ArrayOfExtraGuardConditions &  extra_guard_conditions)
inlineprotected

◆ storage_acquire_ownerships()

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>
void rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::storage_acquire_ownerships ( )
inlineprotected

◆ storage_release_ownerships()

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>
void rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::storage_release_ownerships ( )
inlineprotected

Member Data Documentation

◆ subscriptions_

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>
const ArrayOfSubscriptions rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::subscriptions_
protected

◆ guard_conditions_

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>
const ArrayOfGuardConditions rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::guard_conditions_
protected

◆ timers_

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>
const ArrayOfTimers rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::timers_
protected

◆ clients_

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>
const ArrayOfClients rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::clients_
protected

◆ services_

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>
const ArrayOfServices rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::services_
protected

◆ waitables_

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>
const ArrayOfWaitables rclcpp::wait_set_policies::StaticStorage< NumberOfSubscriptions, NumberOfGuardCondtions, NumberOfTimers, NumberOfClients, NumberOfServices, NumberOfWaitables >::waitables_
protected

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