Ariles
modifier.h
Go to the documentation of this file.
1 /**
2  @file
3  @author Alexander Sherikov
4 
5  @copyright 2017-2024 Alexander Sherikov, Licensed under the Apache License, Version 2.0.
6  (see @ref LICENSE or http://www.apache.org/licenses/LICENSE-2.0)
7 
8  @brief
9 */
10 
11 #include "node_wrapper.h"
12 
13 
14 namespace ariles2
15 {
16  namespace ns_ros2param
17  {
18  class ModifierImplBase : public serialization::NodeStackBase<ModifierNode>
19  {
20  public:
21  // https://docs.ros2.org/latest/api/rclcpp/classrclcpp_1_1Node.html
22  rclcpp::node_interfaces::NodeParametersInterface::SharedPtr nh_;
23 
24  std::vector<rclcpp::Parameter> parameters_;
25 
26  const std::string separator_ = ".";
27 
28  public:
29  explicit ModifierImplBase(const rclcpp::node_interfaces::NodeParametersInterface::SharedPtr &nh)
30  {
31  nh_ = nh;
32  }
33 
34 
35  template <class t_Element>
36  void setParameter(const t_Element element)
37  {
39  CPPUT_TRACE_VALUE(back().node_);
40  CPPUT_TRACE_TYPE(t_Element);
41 
42  parameters_.emplace_back(back().node_, element);
43  }
44 
45  void setParameter(const std::string &element)
46  {
48  CPPUT_TRACE_VALUE(back().node_);
49  parameters_.emplace_back(back().node_, element);
50  }
51 
52  void setParameter()
53  {
55  if (back().isBuiltinArray())
56  {
57  std::visit([this](auto &&arg) { setParameter(arg); }, back().array_values_);
58  }
59  }
60  };
61  } // namespace ns_ros2param
62 } // namespace ariles2
rclcpp::node_interfaces::NodeParametersInterface::SharedPtr nh_
Definition: modifier.h:22
std::vector< rclcpp::Parameter > parameters_
Definition: modifier.h:24
void setParameter(const std::string &element)
Definition: modifier.h:45
ModifierImplBase(const rclcpp::node_interfaces::NodeParametersInterface::SharedPtr &nh)
Definition: modifier.h:29
void setParameter(const t_Element element)
Definition: modifier.h:36
Definition: basic.h:17
#define CPPUT_TRACE_FUNCTION
Definition: trace.h:126
#define CPPUT_TRACE_TYPE(type)
Definition: trace.h:128
#define CPPUT_TRACE_VALUE(value)
Definition: trace.h:127