rclcpp
master
C++ ROS Client Library API
|
WaitSet policy that explicitly provides fixed sized storage only. More...
#include <static_storage.hpp>
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 () |
![]() | |
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_t & | storage_get_rcl_wait_set () const |
rcl_wait_set_t & | storage_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_ |
![]() | |
rcl_wait_set_t | rcl_wait_set_ |
rclcpp::Context::SharedPtr | context_ |
bool | needs_pruning_ |
bool | needs_resize_ |
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 |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
inlineexplicitprotected |
|
protecteddefault |
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |