Fabric 0.2.0
Loading...
Searching...
No Matches
validation_base.hpp
Go to the documentation of this file.
1#pragma once
2#include <any>
3#include <string>
4#include <vector>
5#include <rclcpp/rclcpp.hpp>
9
10namespace fabric
11{
12
19{
20public:
21 virtual ~ValidationBase() = default;
22
28 virtual void initialize(const rclcpp::Node::SharedPtr& node)
29 {
30 initialize_base(node, "ValidationBasePlugin");
31 }
32
39 virtual void validate(fabric::Plan& plan, std::vector<CapabilityInfo>& capabilities) = 0;
40
41protected:
48 void initialize_base(const rclcpp::Node::SharedPtr& node, const std::string& plugin_name)
49 {
50 node_ = node;
51 plugin_name_ = plugin_name;
52 }
53
57 rclcpp::Node::SharedPtr node_;
58
62 std::string plugin_name_;
63};
64
65} // namespace fabric
Abstract base class for XML plan validation plugins.
Definition validation_base.hpp:19
rclcpp::Node::SharedPtr node_
Shared pointer to the ROS2 node.
Definition validation_base.hpp:57
std::string plugin_name_
Name of the validation plugin.
Definition validation_base.hpp:62
virtual void initialize(const rclcpp::Node::SharedPtr &node)
Initialize the validation plugin with the given ROS2 node.
Definition validation_base.hpp:28
virtual void validate(fabric::Plan &plan, std::vector< CapabilityInfo > &capabilities)=0
Validate the given XML plan.
void initialize_base(const rclcpp::Node::SharedPtr &node, const std::string &plugin_name)
Base initialization method for derived classes.
Definition validation_base.hpp:48
virtual ~ValidationBase()=default
Definition parser_base.hpp:9
Definition structs.hpp:70
Structure representing a node in the fabric.
Definition structs.hpp:26