Class NodeParameters
Defined in File node_parameters.hpp
Inheritance Relationships
Base Type
public rclcpp::node_interfaces::NodeParametersInterface
(Class NodeParametersInterface)
Class Documentation
-
class NodeParameters : public rclcpp::node_interfaces::NodeParametersInterface
Implementation of the NodeParameters part of the Node API.
Public Types
-
using PreSetCallbacksHandleContainer = std::list<PreSetParametersCallbackHandle::WeakPtr>
-
using OnSetCallbacksHandleContainer = std::list<OnSetParametersCallbackHandle::WeakPtr>
-
using PostSetCallbacksHandleContainer = std::list<PostSetParametersCallbackHandle::WeakPtr>
-
using CallbacksContainerType = OnSetCallbacksHandleContainer
Public Functions
Constructor.
If using automatically_declare_parameters_from_overrides, overrides of get_parameter_overrides(), has_parameter(), declare_parameter() will not be respected. If this is an issue, pass false for automatically_declare_parameters_from_overrides and invoke perform_automatically_declare_parameters_from_overrides() manually after construction.
-
virtual ~NodeParameters()
-
virtual const rclcpp::ParameterValue &declare_parameter(const std::string &name, const rclcpp::ParameterValue &default_value, const rcl_interfaces::msg::ParameterDescriptor ¶meter_descriptor = rcl_interfaces::msg::ParameterDescriptor{}, bool ignore_override = false) override
Declare and initialize a parameter.
See also
-
virtual const rclcpp::ParameterValue &declare_parameter(const std::string &name, rclcpp::ParameterType type, const rcl_interfaces::msg::ParameterDescriptor ¶meter_descriptor = rcl_interfaces::msg::ParameterDescriptor(), bool ignore_override = false) override
Declare a parameter.
See also
-
virtual void undeclare_parameter(const std::string &name) override
Undeclare a parameter.
See also
-
virtual bool has_parameter(const std::string &name) const override
Return true if the parameter has been declared, otherwise false.
See also
-
virtual std::vector<rcl_interfaces::msg::SetParametersResult> set_parameters(const std::vector<rclcpp::Parameter> ¶meters) override
Set one or more parameters, one at a time.
See also
-
virtual rcl_interfaces::msg::SetParametersResult set_parameters_atomically(const std::vector<rclcpp::Parameter> ¶meters) override
Set one or more parameters, all at once.
-
virtual std::vector<rclcpp::Parameter> get_parameters(const std::vector<std::string> &names) const override
Get descriptions of parameters given their names.
-
virtual rclcpp::Parameter get_parameter(const std::string &name) const override
Get the description of one parameter given a name.
-
virtual bool get_parameter(const std::string &name, rclcpp::Parameter ¶meter) const override
Get the description of one parameter given a name.
-
virtual bool get_parameters_by_prefix(const std::string &prefix, std::map<std::string, rclcpp::Parameter> ¶meters) const override
Get all parameters that have the specified prefix into the parameters map.
-
virtual std::vector<rcl_interfaces::msg::ParameterDescriptor> describe_parameters(const std::vector<std::string> &names) const override
-
virtual std::vector<uint8_t> get_parameter_types(const std::vector<std::string> &names) const override
-
virtual rcl_interfaces::msg::ListParametersResult list_parameters(const std::vector<std::string> &prefixes, uint64_t depth) const override
-
virtual PreSetParametersCallbackHandle::SharedPtr add_pre_set_parameters_callback(PreSetParametersCallbackType callback) override
Add a callback that gets triggered before parameters are validated.
-
virtual OnSetParametersCallbackHandle::SharedPtr add_on_set_parameters_callback(OnSetParametersCallbackType callback) override
Add a callback to validate parameters before they are set.
-
virtual PostSetParametersCallbackHandle::SharedPtr add_post_set_parameters_callback(PostSetParametersCallbackType callback) override
Add a callback that gets triggered after parameters are set successfully.
-
virtual void remove_on_set_parameters_callback(const OnSetParametersCallbackHandle *const handler) override
Remove a callback registered with
add_on_set_parameters_callback
.
-
virtual void remove_post_set_parameters_callback(const PostSetParametersCallbackHandle *const handler) override
Remove a callback registered with
add_post_set_parameters_callback
.
-
virtual void remove_pre_set_parameters_callback(const PreSetParametersCallbackHandle *const handler) override
Remove a callback registered with
add_pre_set_parameters_callback
.
-
virtual const std::map<std::string, rclcpp::ParameterValue> &get_parameter_overrides() const override
Return the initial parameter values used by the NodeParameters to override default values.
-
virtual void enable_parameter_modification() override
Enable parameter modification recursively during parameter callbacks.
This function is used to enable parameter modification during parameter callbacks.
There are times when it does not allow parameter modification, such as when the parameter callbacks are being called and tries to modify the parameters with set_parameter and declare_parameter to avoid recursive parameter modification. This is protected by rclcpp::node_interfaces::ParameterMutationRecursionGuard.
This function is explicitly called to allow the recursive parameter operation during parameter callbacks by the application. Once it is enabled, the next parameter operation set/declare/undeclare_parameter are allowed to execute in the parameter callback. But, no more further recursive operation is allowed, unless user application calls this API again.
Protected Functions
-
void perform_automatically_declare_parameters_from_overrides()
-
using PreSetCallbacksHandleContainer = std::list<PreSetParametersCallbackHandle::WeakPtr>