ROS 2 rclcpp + rcl - jazzy
jazzy
ROS 2 C++ Client Library with ROS Client Library
|
Implementation of the NodeBase part of the Node API. More...
#include <rclcpp/node_interfaces/node_base.hpp>
Public Member Functions | |
RCLCPP_PUBLIC | NodeBase (const std::string &node_name, const std::string &namespace_, rclcpp::Context::SharedPtr context, const rcl_node_options_t &rcl_node_options, bool use_intra_process_default, bool enable_topic_statistics_default, rclcpp::CallbackGroup::SharedPtr default_callback_group=nullptr) |
Constructor. More... | |
RCLCPP_PUBLIC const char * | get_name () const override |
Return the name of the node. More... | |
RCLCPP_PUBLIC const char * | get_namespace () const override |
Return the namespace of the node. More... | |
RCLCPP_PUBLIC const char * | get_fully_qualified_name () const override |
Return the fully qualified name of the node. More... | |
RCLCPP_PUBLIC rclcpp::Context::SharedPtr | get_context () override |
Return the context of the node. More... | |
RCLCPP_PUBLIC rcl_node_t * | get_rcl_node_handle () override |
Return the rcl_node_t node handle (non-const version). | |
RCLCPP_PUBLIC const rcl_node_t * | get_rcl_node_handle () const override |
Return the rcl_node_t node handle (const version). | |
RCLCPP_PUBLIC std::shared_ptr< rcl_node_t > | get_shared_rcl_node_handle () override |
Return the rcl_node_t node handle in a std::shared_ptr. More... | |
RCLCPP_PUBLIC std::shared_ptr< const rcl_node_t > | get_shared_rcl_node_handle () const override |
Return the rcl_node_t node handle in a std::shared_ptr. More... | |
RCLCPP_PUBLIC rclcpp::CallbackGroup::SharedPtr | create_callback_group (rclcpp::CallbackGroupType group_type, bool automatically_add_to_executor_with_node=true) override |
Create and return a callback group. | |
RCLCPP_PUBLIC rclcpp::CallbackGroup::SharedPtr | get_default_callback_group () override |
Return the default callback group. | |
RCLCPP_PUBLIC bool | callback_group_in_node (rclcpp::CallbackGroup::SharedPtr group) override |
Return true if the given callback group is associated with this node. | |
RCLCPP_PUBLIC void | for_each_callback_group (const CallbackGroupFunction &func) override |
Iterate over the stored callback groups, calling the given function on each valid one. More... | |
RCLCPP_PUBLIC std::atomic_bool & | get_associated_with_executor_atomic () override |
Return the atomic bool which is used to ensure only one executor is used. | |
RCLCPP_PUBLIC rclcpp::GuardCondition & | get_notify_guard_condition () override |
Return a guard condition that should be notified when the internal node state changes. More... | |
RCLCPP_PUBLIC rclcpp::GuardCondition::SharedPtr | get_shared_notify_guard_condition () override |
Return a guard condition that should be notified when the internal node state changes. More... | |
RCLCPP_PUBLIC void | trigger_notify_guard_condition () override |
Trigger the guard condition that notifies of internal node state changes. More... | |
RCLCPP_PUBLIC bool | get_use_intra_process_default () const override |
Return the default preference for using intra process communication. | |
bool | get_enable_topic_statistics_default () const override |
Return the default preference for enabling topic statistics collection. | |
std::string | resolve_topic_or_service_name (const std::string &name, bool is_service, bool only_expand=false) const override |
Expand and remap a given topic or service name. | |
Additional Inherited Members | |
![]() | |
using | CallbackGroupFunction = std::function< void(rclcpp::CallbackGroup::SharedPtr)> |
Implementation of the NodeBase part of the Node API.
Definition at line 37 of file node_base.hpp.
NodeBase::NodeBase | ( | const std::string & | node_name, |
const std::string & | namespace_, | ||
rclcpp::Context::SharedPtr | context, | ||
const rcl_node_options_t & | rcl_node_options, | ||
bool | use_intra_process_default, | ||
bool | enable_topic_statistics_default, | ||
rclcpp::CallbackGroup::SharedPtr | default_callback_group = nullptr |
||
) |
Constructor.
If nullptr (default) is given for the default_callback_group, one will be created by the constructor using the create_callback_group() method, but virtual dispatch will not occur so overrides of that method will not be used.
Definition at line 37 of file node_base.cpp.
References rcl_node_options_s::enable_rosout, rcl_get_zero_initialized_node(), rcl_logging_rosout_enabled(), rcl_logging_rosout_init_publisher_for_node(), rcl_node_fini(), rcl_node_init(), RCL_RET_ERROR, RCL_RET_INVALID_ARGUMENT, RCL_RET_NODE_INVALID_NAME, RCL_RET_NODE_INVALID_NAMESPACE, and RCL_RET_OK.
|
overridevirtual |
Iterate over the stored callback groups, calling the given function on each valid one.
This method is called in a thread-safe way, and also makes sure to only call the given function on those items that are still valid.
[in] | func | The callback function to call on each valid callback group. |
Implements rclcpp::node_interfaces::NodeBaseInterface.
Definition at line 259 of file node_base.cpp.
|
overridevirtual |
Return the context of the node.
Implements rclcpp::node_interfaces::NodeBaseInterface.
Definition at line 187 of file node_base.cpp.
|
overridevirtual |
Return the fully qualified name of the node.
Implements rclcpp::node_interfaces::NodeBaseInterface.
Definition at line 181 of file node_base.cpp.
References rcl_node_get_fully_qualified_name().
|
overridevirtual |
Return the name of the node.
Implements rclcpp::node_interfaces::NodeBaseInterface.
Definition at line 169 of file node_base.cpp.
References rcl_node_get_name().
|
overridevirtual |
Return the namespace of the node.
Implements rclcpp::node_interfaces::NodeBaseInterface.
Definition at line 175 of file node_base.cpp.
References rcl_node_get_namespace().
|
overridevirtual |
Return a guard condition that should be notified when the internal node state changes.
For example, this should be notified when a publisher is added or removed.
Implements rclcpp::node_interfaces::NodeBaseInterface.
Definition at line 277 of file node_base.cpp.
|
overridevirtual |
Return a guard condition that should be notified when the internal node state changes.
For example, this should be notified when a publisher is added or removed.
Implements rclcpp::node_interfaces::NodeBaseInterface.
Definition at line 287 of file node_base.cpp.
|
overridevirtual |
Return the rcl_node_t node handle in a std::shared_ptr.
This handle remains valid after the Node is destroyed. The actual rcl node is not finalized until it is out of scope everywhere.
Implements rclcpp::node_interfaces::NodeBaseInterface.
Definition at line 211 of file node_base.cpp.
|
overridevirtual |
Return the rcl_node_t node handle in a std::shared_ptr.
This handle remains valid after the Node is destroyed. The actual rcl node is not finalized until it is out of scope everywhere.
Implements rclcpp::node_interfaces::NodeBaseInterface.
Definition at line 205 of file node_base.cpp.
|
overridevirtual |
Trigger the guard condition that notifies of internal node state changes.
For example, this should be notified when a publisher is added or removed.
Implements rclcpp::node_interfaces::NodeBaseInterface.
Definition at line 297 of file node_base.cpp.
Referenced by create_callback_group().