15 #ifndef RCLCPP__NODE_INTERFACES__NODE_PARAMETERS_INTERFACE_HPP_
16 #define RCLCPP__NODE_INTERFACES__NODE_PARAMETERS_INTERFACE_HPP_
23 #include "rcl_interfaces/msg/list_parameters_result.hpp"
24 #include "rcl_interfaces/msg/parameter_descriptor.hpp"
25 #include "rcl_interfaces/msg/set_parameters_result.hpp"
27 #include "rclcpp/macros.hpp"
28 #include "rclcpp/node_interfaces/detail/node_interfaces_helpers.hpp"
29 #include "rclcpp/parameter.hpp"
30 #include "rclcpp/visibility_control.hpp"
34 namespace node_interfaces
41 using PreSetParametersCallbackType =
42 std::function<void (std::vector<rclcpp::Parameter> &)>;
44 PreSetParametersCallbackType callback;
51 using OnSetParametersCallbackType =
53 rcl_interfaces::msg::SetParametersResult(
54 const std::vector<rclcpp::Parameter> &)>;
55 using OnParametersSetCallbackType [[deprecated(
"use OnSetParametersCallbackType instead")]] =
56 OnSetParametersCallbackType;
58 OnSetParametersCallbackType callback;
65 using PostSetParametersCallbackType =
66 std::function<void (
const std::vector<rclcpp::Parameter> &)>;
68 PostSetParametersCallbackType callback;
89 const std::string & name,
91 const rcl_interfaces::msg::ParameterDescriptor & parameter_descriptor =
92 rcl_interfaces::msg::ParameterDescriptor(),
93 bool ignore_override =
false) = 0;
103 const std::string & name,
104 rclcpp::ParameterType type,
105 const rcl_interfaces::msg::ParameterDescriptor & parameter_descriptor =
106 rcl_interfaces::msg::ParameterDescriptor(),
107 bool ignore_override =
false) = 0;
133 std::vector<rcl_interfaces::msg::SetParametersResult>
142 rcl_interfaces::msg::SetParametersResult
144 const std::vector<rclcpp::Parameter> & parameters) = 0;
154 std::vector<rclcpp::Parameter>
179 const std::string & name,
193 const std::string & prefix,
194 std::map<std::string, rclcpp::Parameter> & parameters)
const = 0;
198 std::vector<rcl_interfaces::msg::ParameterDescriptor>
199 describe_parameters(
const std::vector<std::string> & names)
const = 0;
204 get_parameter_types(
const std::vector<std::string> & names)
const = 0;
208 rcl_interfaces::msg::ListParametersResult
209 list_parameters(
const std::vector<std::string> & prefixes, uint64_t depth)
const = 0;
211 using OnSetParametersCallbackType = OnSetParametersCallbackHandle::OnSetParametersCallbackType;
212 using PostSetParametersCallbackType =
213 PostSetParametersCallbackHandle::PostSetParametersCallbackType;
214 using PreSetParametersCallbackType = PreSetParametersCallbackHandle::PreSetParametersCallbackType;
222 PreSetParametersCallbackHandle::SharedPtr
231 OnSetParametersCallbackHandle::SharedPtr
240 PostSetParametersCallbackHandle::SharedPtr
273 const std::map<std::string, rclcpp::ParameterValue> &
Store the type and value of a parameter.
Structure to store an arbitrary parameter with templated get/set methods.
Pure virtual interface class for the NodeParameters part of the Node API.
virtual RCLCPP_PUBLIC 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)=0
Declare a parameter.
virtual RCLCPP_PUBLIC OnSetParametersCallbackHandle::SharedPtr add_on_set_parameters_callback(OnSetParametersCallbackType callback)=0
Add a callback to validate parameters before they are set.
virtual RCLCPP_PUBLIC PostSetParametersCallbackHandle::SharedPtr add_post_set_parameters_callback(PostSetParametersCallbackType callback)=0
Add a callback that gets triggered after parameters are set successfully.
virtual RCLCPP_PUBLIC void remove_on_set_parameters_callback(const OnSetParametersCallbackHandle *const handler)=0
Remove a callback registered with add_on_set_parameters_callback.
virtual RCLCPP_PUBLIC void undeclare_parameter(const std::string &name)=0
Undeclare a parameter.
virtual RCLCPP_PUBLIC 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)=0
Declare and initialize a parameter.
virtual RCLCPP_PUBLIC std::vector< rclcpp::Parameter > get_parameters(const std::vector< std::string > &names) const =0
Get descriptions of parameters given their names.
virtual RCLCPP_PUBLIC PreSetParametersCallbackHandle::SharedPtr add_pre_set_parameters_callback(PreSetParametersCallbackType callback)=0
Add a callback that gets triggered before parameters are validated.
virtual RCLCPP_PUBLIC bool get_parameter(const std::string &name, rclcpp::Parameter ¶meter) const =0
Get the description of one parameter given a name.
virtual RCLCPP_PUBLIC rclcpp::Parameter get_parameter(const std::string &name) const =0
Get the description of one parameter given a name.
virtual RCLCPP_PUBLIC bool has_parameter(const std::string &name) const =0
Return true if the parameter has been declared, otherwise false.
virtual RCLCPP_PUBLIC rcl_interfaces::msg::SetParametersResult set_parameters_atomically(const std::vector< rclcpp::Parameter > ¶meters)=0
Set one or more parameters, all at once.
virtual RCLCPP_PUBLIC bool get_parameters_by_prefix(const std::string &prefix, std::map< std::string, rclcpp::Parameter > ¶meters) const =0
Get all parameters that have the specified prefix into the parameters map.
virtual RCLCPP_PUBLIC void remove_pre_set_parameters_callback(const PreSetParametersCallbackHandle *const handler)=0
Remove a callback registered with add_pre_set_parameters_callback.
virtual RCLCPP_PUBLIC void remove_post_set_parameters_callback(const PostSetParametersCallbackHandle *const handler)=0
Remove a callback registered with add_post_set_parameters_callback.
virtual RCLCPP_PUBLIC 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 RCLCPP_PUBLIC std::vector< rcl_interfaces::msg::SetParametersResult > set_parameters(const std::vector< rclcpp::Parameter > ¶meters)=0
Set one or more parameters, one at a time.
Versions of rosidl_typesupport_cpp::get_message_type_support_handle that handle adapted types.