Template Class StaticStorage

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

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 StaticStorage : public rclcpp::wait_set_policies::detail::StoragePolicyCommon<true>

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.

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 Functions

template<class ArrayOfExtraGuardConditions>
inline explicit 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>
inline void storage_rebuild_rcl_wait_set(const ArrayOfExtraGuardConditions &extra_guard_conditions)
inline void storage_acquire_ownerships()
inline void storage_release_ownerships()

Protected Attributes

const ArrayOfSubscriptions subscriptions_
const ArrayOfGuardConditions guard_conditions_
const ArrayOfTimers timers_
const ArrayOfClients clients_
const ArrayOfServices services_
const ArrayOfWaitables waitables_
class SubscriptionEntry

Public Functions

inline SubscriptionEntry(std::shared_ptr<rclcpp::SubscriptionBase> subscription_in = nullptr, rclcpp::SubscriptionWaitSetMask mask_in = {})

Conversion constructor, which is intentionally not marked explicit.

Public Members

std::shared_ptr<rclcpp::SubscriptionBase> subscription
rclcpp::SubscriptionWaitSetMask mask
struct WaitableEntry

Public Functions

inline WaitableEntry(std::shared_ptr<rclcpp::Waitable> waitable_in = nullptr, std::shared_ptr<void> associated_entity_in = nullptr) noexcept

Conversion constructor, which is intentionally not marked explicit.

Public Members

std::shared_ptr<rclcpp::Waitable> waitable
std::shared_ptr<void> associated_entity