25 #include <ariles2/adapters/eigen.h>
42 #define ARILES2_ENTRIES(v) \
43 ARILES2_TYPED_ENTRY(v, real_member, double) \
44 ARILES2_TYPED_ENTRY_(v, integer_member, int)
50 #include ARILES2_INITIALIZE
79 #define ARILES2_ENTRIES(v) \
80 ARILES2_PARENT(v, ArilesBaseClass) \
81 ARILES2_ENTRY_(v, eigen_vector)
85 #include ARILES2_INITIALIZE
98 arilesVisitParents(visitor, param);
100 ArilesBaseClass::arilesVisit(visitor, param);
104 eigen_vector_.setZero();
112 #define ARILES2_ENTRIES(v) \
113 ARILES2_TYPED_ENTRY_(v, my_class_vector, std::vector<MyClass>) \
114 ARILES2_TYPED_ENTRY_(v, ptr, std::shared_ptr<MyClass>)
115 #include ARILES2_INITIALIZE
131 int main(
int argc,
char *argv[])
135 rclcpp::init(argc, argv);
136 const rclcpp::Node::SharedPtr nh = rclcpp::Node::make_shared(
143 rclcpp::NodeOptions().allow_undeclared_parameters(
true).automatically_declare_parameters_from_overrides(
148 MyContainerClass my_container_class;
151 my_container_class.my_class_vector_.emplace_back();
152 ariles2::apply<ariles2::Defaults>(my_container_class.my_class_vector_[0]);
163 ariles2::apply<ariles2::yaml_cpp::Writer>(std::cout, my_container_class);
166 ariles2::apply<ariles2::ros2param::Reader>(nh->get_node_parameters_interface(), my_container_class);
183 ariles2::apply<ariles2::yaml_cpp::Writer>(std::cout, my_container_class);
188 MyContainerClass my_container_class;
189 my_container_class.ptr_ = std::make_shared<MyClass>();
190 ariles2::apply<ariles2::Defaults>(*my_container_class.ptr_);
192 my_container_class.my_class_vector_.emplace_back();
193 ariles2::apply<ariles2::Defaults>(my_container_class.my_class_vector_[0]);
194 my_container_class.my_class_vector_[0].real_member = 200;
196 ariles2::apply<ariles2::ros2param::Writer>(nh->get_node_parameters_interface(), my_container_class);
197 ariles2::apply<ariles2::ros2param::Reader>(nh->get_node_parameters_interface(), my_container_class);
220 ariles2::apply<ariles2::yaml_cpp::Writer>(std::cout, my_container_class);
228 MyContainerClass my_container_class;
229 my_container_class.my_class_vector_.emplace_back();
230 ariles2::apply<ariles2::Defaults>(my_container_class.my_class_vector_[0]);
231 ariles2::apply<ariles2::ros2param::Declarator>(nh->get_node_parameters_interface(), my_container_class);
240 ariles2::apply<ariles2::ros2param::Reader>(nh->get_node_parameters_interface(), my_class);
242 catch (
const std::exception &e)
245 std::cout << e.what() << std::endl;
249 catch (
const std::exception &e)
251 std::cout << e.what() << std::endl;
252 return (EXIT_FAILURE);
255 return (EXIT_SUCCESS);
virtual ~ArilesBaseClass()=default
void arilesVisit(const ariles2::Defaults &, const ariles2::Defaults::Parameters &)
void arilesVisit(const ariles2::Defaults &visitor, const ariles2::Defaults::Parameters ¶m)
~MyClass() override=default
virtual ~MyContainerClass()=default
Eigen::Vector3d eigen_vector_
int main(int argc, char *argv[])