ROS 2 rclcpp + rcl - humble
humble
ROS 2 C++ Client Library with ROS Client Library
|
Public Member Functions | |
RCLCPP_PUBLIC void | init (rcl_wait_set_t *p_wait_set, rclcpp::memory_strategy::MemoryStrategy::SharedPtr memory_strategy) |
Initialize StaticExecutorEntitiesCollector. More... | |
RCLCPP_PUBLIC bool | is_init () |
Finalize StaticExecutorEntitiesCollector to clear resources. | |
RCLCPP_PUBLIC void | fini () |
RCLCPP_PUBLIC void | execute (std::shared_ptr< void > &data) override |
Execute the waitable. | |
RCLCPP_PUBLIC std::shared_ptr< void > | take_data () override |
Take the data so that it can be consumed with execute . More... | |
RCLCPP_PUBLIC void | refresh_wait_set (std::chrono::nanoseconds timeout=std::chrono::nanoseconds(-1)) |
Function to add_handles_to_wait_set and wait for work and. More... | |
RCLCPP_PUBLIC void | add_to_wait_set (rcl_wait_set_t *wait_set) override |
RCLCPP_PUBLIC size_t | get_number_of_ready_guard_conditions () override |
Get the number of ready guard_conditions. More... | |
RCLCPP_PUBLIC bool | add_callback_group (rclcpp::CallbackGroup::SharedPtr group_ptr, rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr) |
Add a callback group to an executor. More... | |
RCLCPP_PUBLIC bool | add_callback_group (rclcpp::CallbackGroup::SharedPtr group_ptr, rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr, WeakCallbackGroupsToNodesMap &weak_groups_to_nodes) |
Add a callback group to an executor. More... | |
RCLCPP_PUBLIC bool | remove_callback_group (rclcpp::CallbackGroup::SharedPtr group_ptr) |
Remove a callback group from the executor. More... | |
RCLCPP_PUBLIC bool | remove_callback_group_from_map (rclcpp::CallbackGroup::SharedPtr group_ptr, WeakCallbackGroupsToNodesMap &weak_groups_to_nodes) |
Remove a callback group from the executor. More... | |
RCLCPP_PUBLIC bool | add_node (rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr) |
RCLCPP_PUBLIC bool | remove_node (rclcpp::node_interfaces::NodeBaseInterface::SharedPtr node_ptr) |
RCLCPP_PUBLIC std::vector< rclcpp::CallbackGroup::WeakPtr > | get_all_callback_groups () |
RCLCPP_PUBLIC std::vector< rclcpp::CallbackGroup::WeakPtr > | get_manually_added_callback_groups () |
Get callback groups that belong to executor. More... | |
RCLCPP_PUBLIC std::vector< rclcpp::CallbackGroup::WeakPtr > | get_automatically_added_callback_groups_from_nodes () |
Get callback groups that belong to executor. More... | |
RCLCPP_PUBLIC bool | is_ready (rcl_wait_set_t *wait_set) override |
Complete all available queued work without blocking. More... | |
RCLCPP_PUBLIC size_t | get_number_of_timers () |
Return number of timers. More... | |
RCLCPP_PUBLIC size_t | get_number_of_subscriptions () |
Return number of subscriptions. More... | |
RCLCPP_PUBLIC size_t | get_number_of_services () |
Return number of services. More... | |
RCLCPP_PUBLIC size_t | get_number_of_clients () |
Return number of clients. More... | |
RCLCPP_PUBLIC size_t | get_number_of_waitables () |
Return number of waitables. More... | |
RCLCPP_PUBLIC rclcpp::SubscriptionBase::SharedPtr | get_subscription (size_t i) |
RCLCPP_PUBLIC rclcpp::TimerBase::SharedPtr | get_timer (size_t i) |
RCLCPP_PUBLIC rclcpp::ServiceBase::SharedPtr | get_service (size_t i) |
RCLCPP_PUBLIC rclcpp::ClientBase::SharedPtr | get_client (size_t i) |
RCLCPP_PUBLIC rclcpp::Waitable::SharedPtr | get_waitable (size_t i) |
![]() | |
virtual RCLCPP_PUBLIC size_t | get_number_of_ready_subscriptions () |
Get the number of ready subscriptions. More... | |
virtual RCLCPP_PUBLIC size_t | get_number_of_ready_timers () |
Get the number of ready timers. More... | |
virtual RCLCPP_PUBLIC size_t | get_number_of_ready_clients () |
Get the number of ready clients. More... | |
virtual RCLCPP_PUBLIC size_t | get_number_of_ready_events () |
Get the number of ready events. More... | |
virtual RCLCPP_PUBLIC size_t | get_number_of_ready_services () |
Get the number of ready services. More... | |
virtual RCLCPP_PUBLIC std::shared_ptr< void > | take_data_by_entity_id (size_t id) |
Take the data so that it can be consumed with execute . More... | |
RCLCPP_PUBLIC bool | exchange_in_use_by_wait_set_state (bool in_use_state) |
Exchange the "in use by wait set" state for this timer. More... | |
virtual RCLCPP_PUBLIC void | set_on_ready_callback (std::function< void(size_t, int)> callback) |
Set a callback to be called whenever the waitable becomes ready. More... | |
virtual RCLCPP_PUBLIC void | clear_on_ready_callback () |
Unset any callback registered via set_on_ready_callback. More... | |
Definition at line 41 of file static_executor_entities_collector.hpp.
bool StaticExecutorEntitiesCollector::add_callback_group | ( | rclcpp::CallbackGroup::SharedPtr | group_ptr, |
rclcpp::node_interfaces::NodeBaseInterface::SharedPtr | node_ptr | ||
) |
Add a callback group to an executor.
Definition at line 343 of file static_executor_entities_collector.cpp.
bool StaticExecutorEntitiesCollector::add_callback_group | ( | rclcpp::CallbackGroup::SharedPtr | group_ptr, |
rclcpp::node_interfaces::NodeBaseInterface::SharedPtr | node_ptr, | ||
WeakCallbackGroupsToNodesMap & | weak_groups_to_nodes | ||
) |
Add a callback group to an executor.
Definition at line 315 of file static_executor_entities_collector.cpp.
bool StaticExecutorEntitiesCollector::add_node | ( | rclcpp::node_interfaces::NodeBaseInterface::SharedPtr | node_ptr | ) |
std::runtime_error | if node was already added |
Definition at line 287 of file static_executor_entities_collector.cpp.
|
overridevirtual |
std::runtime_error | if it couldn't add guard condition to wait set |
Implements rclcpp::Waitable.
Definition at line 271 of file static_executor_entities_collector.cpp.
std::vector< rclcpp::CallbackGroup::WeakPtr > StaticExecutorEntitiesCollector::get_automatically_added_callback_groups_from_nodes | ( | ) |
Get callback groups that belong to executor.
Definition at line 517 of file static_executor_entities_collector.cpp.
|
inline |
Return a ClientBase Sharedptr by index
[in] | i | The index of the ClientBase |
std::out_of_range | if the argument is higher than the size. |
Definition at line 275 of file static_executor_entities_collector.hpp.
std::vector< rclcpp::CallbackGroup::WeakPtr > StaticExecutorEntitiesCollector::get_manually_added_callback_groups | ( | ) |
Get callback groups that belong to executor.
Definition at line 507 of file static_executor_entities_collector.cpp.
|
inline |
Return number of clients.
Definition at line 231 of file static_executor_entities_collector.hpp.
|
overridevirtual |
Get the number of ready guard_conditions.
Returns a value of 0 by default. This should be overridden if the Waitable contains one or more guard_conditions.
Reimplemented from rclcpp::Waitable.
Definition at line 280 of file static_executor_entities_collector.cpp.
|
inline |
Return number of services.
Definition at line 223 of file static_executor_entities_collector.hpp.
|
inline |
Return number of subscriptions.
Definition at line 215 of file static_executor_entities_collector.hpp.
|
inline |
Return number of timers.
Definition at line 207 of file static_executor_entities_collector.hpp.
|
inline |
Return number of waitables.
Definition at line 239 of file static_executor_entities_collector.hpp.
|
inline |
Return a ServiceBase Sharedptr by index.
[in] | i | The index of the ServiceBase |
std::out_of_range | if the argument is higher than the size. |
Definition at line 266 of file static_executor_entities_collector.hpp.
|
inline |
Return a SubscritionBase Sharedptr by index.
[in] | i | The index of the SubscritionBase |
std::out_of_range | if the argument is higher than the size of the structrue. |
Definition at line 248 of file static_executor_entities_collector.hpp.
|
inline |
Return a TimerBase Sharedptr by index.
[in] | i | The index of the TimerBase |
std::out_of_range | if the argument is higher than the size. |
Definition at line 257 of file static_executor_entities_collector.hpp.
|
inline |
Return a Waitable Sharedptr by index
[in] | i | The index of the Waitable |
std::out_of_range | if the argument is higher than the size. |
Definition at line 284 of file static_executor_entities_collector.hpp.
void StaticExecutorEntitiesCollector::init | ( | rcl_wait_set_t * | p_wait_set, |
rclcpp::memory_strategy::MemoryStrategy::SharedPtr | memory_strategy | ||
) |
Initialize StaticExecutorEntitiesCollector.
p_wait_set | A reference to the wait set to be used in the executor |
memory_strategy | Shared pointer to the memory strategy to set. |
std::runtime_error | if memory strategy is null |
Definition at line 63 of file static_executor_entities_collector.cpp.
References execute().
|
overridevirtual |
Complete all available queued work without blocking.
This function checks if after the guard condition was triggered (or a spurious wakeup happened) we are really ready to execute i.e. re-collect entities
Implements rclcpp::Waitable.
Definition at line 434 of file static_executor_entities_collector.cpp.
References rcl_wait_set_s::guard_conditions, and rcl_wait_set_s::size_of_guard_conditions.
void StaticExecutorEntitiesCollector::refresh_wait_set | ( | std::chrono::nanoseconds | timeout = std::chrono::nanoseconds(-1) | ) |
Function to add_handles_to_wait_set and wait for work and.
block until the wait set is ready or until the timeout has been exceeded.
std::runtime_error | if wait set couldn't be cleared or filled. |
any | rcl errors from rcl_wait, |
Definition at line 245 of file static_executor_entities_collector.cpp.
References RCL_RET_OK, RCL_RET_TIMEOUT, RCL_RET_WAIT_SET_EMPTY, rcl_wait(), and rcl_wait_set_clear().
bool StaticExecutorEntitiesCollector::remove_callback_group | ( | rclcpp::CallbackGroup::SharedPtr | group_ptr | ) |
Remove a callback group from the executor.
Definition at line 351 of file static_executor_entities_collector.cpp.
References remove_callback_group_from_map().
bool StaticExecutorEntitiesCollector::remove_callback_group_from_map | ( | rclcpp::CallbackGroup::SharedPtr | group_ptr, |
WeakCallbackGroupsToNodesMap & | weak_groups_to_nodes | ||
) |
Remove a callback group from the executor.
Definition at line 360 of file static_executor_entities_collector.cpp.
Referenced by remove_callback_group().
bool StaticExecutorEntitiesCollector::remove_node | ( | rclcpp::node_interfaces::NodeBaseInterface::SharedPtr | node_ptr | ) |
std::runtime_error | if no guard condition is associated with node. |
Definition at line 388 of file static_executor_entities_collector.cpp.
|
overridevirtual |
Take the data so that it can be consumed with execute
.
For StaticExecutorEntitiesCollector
, this always return nullptr
.
Implements rclcpp::Waitable.
Definition at line 93 of file static_executor_entities_collector.cpp.