15 #ifndef NAV2_UTIL__PARAMETER_HANDLER_HPP_
16 #define NAV2_UTIL__PARAMETER_HANDLER_HPP_
24 #include "nav2_ros_common/lifecycle_node.hpp"
25 #include "nav2_ros_common/node_utils.hpp"
34 template<
typename ParamsT>
42 const nav2::LifecycleNode::SharedPtr & node,
43 const rclcpp::Logger & logger)
44 : node_(node), logger_(logger) {}
68 auto node = node_.lock();
69 post_set_params_handler_ = node->add_post_set_parameters_callback(
71 on_set_params_handler_ = node->add_on_set_parameters_callback(
80 auto node = node_.lock();
81 if (post_set_params_handler_ && node) {
82 node->remove_post_set_parameters_callback(post_set_params_handler_.get());
84 if (on_set_params_handler_ && node) {
85 node->remove_on_set_parameters_callback(on_set_params_handler_.get());
87 post_set_params_handler_.reset();
88 on_set_params_handler_.reset();
92 nav2::LifecycleNode::WeakPtr node_;
95 rclcpp::Logger logger_;
96 rclcpp::node_interfaces::PostSetParametersCallbackHandle::SharedPtr post_set_params_handler_;
97 rclcpp::node_interfaces::OnSetParametersCallbackHandle::SharedPtr on_set_params_handler_;
108 const std::vector<rclcpp::Parameter> & parameters) = 0;
virtual ~ParameterHandler()=default
Destructor for nav2_util::ParameterHandler.
ParamsT * getParams()
Get a pointer to the internal parameter structure.
std::mutex & getMutex()
Get the internal mutex used for thread-safe parameter access.
ParameterHandler(const nav2::LifecycleNode::SharedPtr &node, const rclcpp::Logger &logger)
Constructor for nav2_util::ParameterHandler.
virtual rcl_interfaces::msg::SetParametersResult validateParameterUpdatesCallback(const std::vector< rclcpp::Parameter > ¶meters)=0
Validate incoming parameter updates before applying them. This callback is triggered when one or more...
virtual void updateParametersCallback(const std::vector< rclcpp::Parameter > ¶meters)=0
Apply parameter updates after validation This callback is executed when parameters have been successf...
void activate()
Registers callbacks for dynamic parameter handling.
void deactivate()
Resets callbacks for dynamic parameter handling.