event_detector 1.0.0
Loading...
Searching...
No Matches
AnalysisRule.hpp
1
25#pragma once
26
27#include <memory>
28#include <string>
29
30#include "event_detector/BufferManager.hpp"
31#include "event_detector/common.hpp"
32
33namespace event_detector {
34
35class EventDetector;
36
41 public:
48
56 virtual std::string getRuleName() const = 0;
57
67 void initialize(EventDetector* ed, std::shared_ptr<BufferManager> buffer);
68
75 virtual void loadRuleParameters() = 0;
76
83 virtual void evaluate() = 0;
84
85 protected:
92 virtual void onInitialize() = 0;
93
101 rclcpp::Parameter loadRuleParameter(const std::string& parameter_name);
102
112 template <typename T>
113 bool loadRuleParameter(const std::string& parameter_name, T& out_value, const T& default_value);
114
115 protected:
120
124 std::shared_ptr<BufferManager> buffer_;
125};
126
127} // namespace event_detector
128
129#include "event_detector/AnalysisRule.tpp"
Abstract class defining a rule for identifying relevant data.
virtual void loadRuleParameters()=0
Sets the rule's parameters.
AnalysisRule()
Creates a new AnalysisRule.
std::shared_ptr< BufferManager > buffer_
BufferManager component.
virtual std::string getRuleName() const =0
Defines the rule's name.
virtual void evaluate()=0
Evaluates the rule.
virtual void onInitialize()=0
Callback for when the rule is initialized.
rclcpp::Parameter loadRuleParameter(const std::string &parameter_name)
Loads a rule parameter.
bool loadRuleParameter(const std::string &parameter_name, T &out_value, const T &default_value)
Loads a rule parameter if set, else uses default value.
EventDetector * ed_
EventDetector node.
void initialize(EventDetector *ed, std::shared_ptr< BufferManager > buffer)
Initializes the rule.