Class DynamicStorage

Nested Relationships

Nested Types

Inheritance Relationships

Base Type

Class Documentation

class DynamicStorage : public rclcpp::wait_set_policies::detail::StoragePolicyCommon<false>

WaitSet policy that provides dynamically sized storage.

Protected Types

using is_mutable = std::true_type
using SequenceOfWeakSubscriptions = std::vector<WeakSubscriptionEntry>
using SubscriptionsIterable = std::vector<SubscriptionEntry>
using SequenceOfWeakGuardConditions = std::vector<std::weak_ptr<rclcpp::GuardCondition>>
using GuardConditionsIterable = std::vector<std::shared_ptr<rclcpp::GuardCondition>>
using SequenceOfWeakTimers = std::vector<std::weak_ptr<rclcpp::TimerBase>>
using TimersIterable = std::vector<std::shared_ptr<rclcpp::TimerBase>>
using SequenceOfWeakClients = std::vector<std::weak_ptr<rclcpp::ClientBase>>
using ClientsIterable = std::vector<std::shared_ptr<rclcpp::ClientBase>>
using SequenceOfWeakServices = std::vector<std::weak_ptr<rclcpp::ServiceBase>>
using ServicesIterable = std::vector<std::shared_ptr<rclcpp::ServiceBase>>
using SequenceOfWeakWaitables = std::vector<WeakWaitableEntry>
using WaitablesIterable = std::vector<WaitableEntry>

Protected Functions

template<class ArrayOfExtraGuardConditions>
inline explicit DynamicStorage(const SubscriptionsIterable &subscriptions, const GuardConditionsIterable &guard_conditions, const ArrayOfExtraGuardConditions &extra_guard_conditions, const TimersIterable &timers, const ClientsIterable &clients, const ServicesIterable &services, const WaitablesIterable &waitables, rclcpp::Context::SharedPtr context)
~DynamicStorage() = default
template<class ArrayOfExtraGuardConditions>
inline void storage_rebuild_rcl_wait_set(const ArrayOfExtraGuardConditions &extra_guard_conditions)
inline void storage_add_subscription(std::shared_ptr<rclcpp::SubscriptionBase> &&subscription)
inline void storage_remove_subscription(std::shared_ptr<rclcpp::SubscriptionBase> &&subscription)
inline void storage_add_guard_condition(std::shared_ptr<rclcpp::GuardCondition> &&guard_condition)
inline void storage_remove_guard_condition(std::shared_ptr<rclcpp::GuardCondition> &&guard_condition)
inline void storage_add_timer(std::shared_ptr<rclcpp::TimerBase> &&timer)
inline void storage_remove_timer(std::shared_ptr<rclcpp::TimerBase> &&timer)
inline void storage_add_client(std::shared_ptr<rclcpp::ClientBase> &&client)
inline void storage_remove_client(std::shared_ptr<rclcpp::ClientBase> &&client)
inline void storage_add_service(std::shared_ptr<rclcpp::ServiceBase> &&service)
inline void storage_remove_service(std::shared_ptr<rclcpp::ServiceBase> &&service)
inline void storage_add_waitable(std::shared_ptr<rclcpp::Waitable> &&waitable, std::shared_ptr<void> &&associated_entity)
inline void storage_remove_waitable(std::shared_ptr<rclcpp::Waitable> &&waitable)
inline void storage_prune_deleted_entities() noexcept
inline void storage_acquire_ownerships()
inline void storage_release_ownerships()

Protected Attributes

size_t ownership_reference_counter_ = 0
SequenceOfWeakSubscriptions subscriptions_
SubscriptionsIterable shared_subscriptions_
SequenceOfWeakGuardConditions guard_conditions_
GuardConditionsIterable shared_guard_conditions_
SequenceOfWeakTimers timers_
TimersIterable shared_timers_
SequenceOfWeakClients clients_
ClientsIterable shared_clients_
SequenceOfWeakServices services_
ServicesIterable shared_services_
SequenceOfWeakWaitables waitables_
WaitablesIterable shared_waitables_

Protected Static Functions

template<class EntityT, class SequenceOfEntitiesT>
static inline bool storage_has_entity(const EntityT &entity, const SequenceOfEntitiesT &entities)
template<class EntityT, class SequenceOfEntitiesT>
static inline auto storage_find_entity(const EntityT &entity, const SequenceOfEntitiesT &entities)
class SubscriptionEntry

Public Functions

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

Conversion constructor, which is intentionally not marked explicit.

inline void reset() noexcept

Public Members

std::shared_ptr<rclcpp::SubscriptionBase> subscription
rclcpp::SubscriptionWaitSetMask mask
class 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.

inline void reset() noexcept

Public Members

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

Public Functions

inline explicit WeakSubscriptionEntry(const std::shared_ptr<rclcpp::SubscriptionBase> &subscription_in, const rclcpp::SubscriptionWaitSetMask &mask_in) noexcept
inline explicit WeakSubscriptionEntry(const SubscriptionEntry &other)
inline std::shared_ptr<rclcpp::SubscriptionBase> lock() const
inline bool expired() const noexcept

Public Members

std::weak_ptr<rclcpp::SubscriptionBase> subscription
rclcpp::SubscriptionWaitSetMask mask
class WeakWaitableEntry

Public Functions

inline explicit WeakWaitableEntry(const std::shared_ptr<rclcpp::Waitable> &waitable_in, const std::shared_ptr<void> &associated_entity_in) noexcept
inline explicit WeakWaitableEntry(const WaitableEntry &other)
inline std::shared_ptr<rclcpp::Waitable> lock() const
inline bool expired() const noexcept

Public Members

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