Class NodeParametersInterface

Inheritance Relationships

Derived Type

Class Documentation

class NodeParametersInterface

Pure virtual interface class for the NodeParameters part of the Node API.

Subclassed by rclcpp::node_interfaces::NodeParameters

Public Types

using OnSetParametersCallbackType = OnSetParametersCallbackHandle::OnSetParametersCallbackType
using PostSetParametersCallbackType = PostSetParametersCallbackHandle::PostSetParametersCallbackType
using PreSetParametersCallbackType = PreSetParametersCallbackHandle::PreSetParametersCallbackType

Public Functions

virtual ~NodeParametersInterface() = default
virtual const rclcpp::ParameterValue &declare_parameter(const std::string &name, const rclcpp::ParameterValue &default_value, const rcl_interfaces::msg::ParameterDescriptor &parameter_descriptor = rcl_interfaces::msg::ParameterDescriptor(), bool ignore_override = false) = 0

Declare and initialize a parameter.

virtual const rclcpp::ParameterValue &declare_parameter(const std::string &name, rclcpp::ParameterType type, const rcl_interfaces::msg::ParameterDescriptor &parameter_descriptor = rcl_interfaces::msg::ParameterDescriptor(), bool ignore_override = false) = 0

Declare a parameter.

virtual void undeclare_parameter(const std::string &name) = 0

Undeclare a parameter.

virtual bool has_parameter(const std::string &name) const = 0

Return true if the parameter has been declared, otherwise false.

virtual std::vector<rcl_interfaces::msg::SetParametersResult> set_parameters(const std::vector<rclcpp::Parameter> &parameters) = 0

Set one or more parameters, one at a time.

virtual rcl_interfaces::msg::SetParametersResult set_parameters_atomically(const std::vector<rclcpp::Parameter> &parameters) = 0

Set one or more parameters, all at once.

virtual std::vector<rclcpp::Parameter> get_parameters(const std::vector<std::string> &names) const = 0

Get descriptions of parameters given their names.

virtual rclcpp::Parameter get_parameter(const std::string &name) const = 0

Get the description of one parameter given a name.

virtual bool get_parameter(const std::string &name, rclcpp::Parameter &parameter) const = 0

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> &parameters) const = 0

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 = 0
virtual std::vector<uint8_t> get_parameter_types(const std::vector<std::string> &names) const = 0
virtual rcl_interfaces::msg::ListParametersResult list_parameters(const std::vector<std::string> &prefixes, uint64_t depth) const = 0
virtual PreSetParametersCallbackHandle::SharedPtr add_pre_set_parameters_callback(PreSetParametersCallbackType callback) = 0

Add a callback that gets triggered before parameters are validated.

virtual OnSetParametersCallbackHandle::SharedPtr add_on_set_parameters_callback(OnSetParametersCallbackType callback) = 0

Add a callback to validate parameters before they are set.

virtual PostSetParametersCallbackHandle::SharedPtr add_post_set_parameters_callback(PostSetParametersCallbackType callback) = 0

Add a callback that gets triggered after parameters are set successfully.

virtual void remove_pre_set_parameters_callback(const PreSetParametersCallbackHandle *const handler) = 0

Remove a callback registered with add_pre_set_parameters_callback.

virtual void remove_on_set_parameters_callback(const OnSetParametersCallbackHandle *const handler) = 0

Remove a callback registered with add_on_set_parameters_callback.

virtual void remove_post_set_parameters_callback(const PostSetParametersCallbackHandle *const handler) = 0

Remove a callback registered with add_post_set_parameters_callback.

virtual const std::map<std::string, rclcpp::ParameterValue> &get_parameter_overrides() const = 0

Return the initial parameter values used by the NodeParameters to override default values.

virtual void enable_parameter_modification() = 0

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.