BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
Decision.h
Go to the documentation of this file.
1#ifndef BPMNOS_Execution_Decision_H
2#define BPMNOS_Execution_Decision_H
3
4#include <bpmn++.h>
6#include <nlohmann/json.hpp>
7
8namespace BPMNOS::Execution {
9
10class Evaluator;
11
12/**
13 * @brief Represents an abstract base class for a pending decision
14 */
15class Decision : virtual public Event {
16public:
18
19 virtual std::optional<double> evaluate() = 0; ///< Evaluates the reward for the decision. Returns null if decision is infeasible.
20 std::optional<double> evaluation; ///< Latest evaluation or null if decision has not been evaluated or evaluation is no longer valid
21
23 std::set<const BPMNOS::Model::Attribute*> dataDependencies;
24protected:
25 void determineDependencies(const std::set<const BPMNOS::Model::Attribute*>& dependencies);
27};
28
29} // namespace BPMNOS::Execution
30
31#endif // BPMNOS_Execution_Decision_H
Represents an abstract base class for a pending decision.
Definition Decision.h:15
std::optional< double > evaluation
Latest evaluation or null if decision has not been evaluated or evaluation is no longer valid.
Definition Decision.h:20
Decision(Evaluator *evaluator)
Definition Decision.cpp:6
std::set< const BPMNOS::Model::Attribute * > dataDependencies
Definition Decision.h:23
void determineDependencies(const std::set< const BPMNOS::Model::Attribute * > &dependencies)
Definition Decision.cpp:12
virtual std::optional< double > evaluate()=0
Evaluates the reward for the decision. Returns null if decision is infeasible.
Represents an abstract base class for a pending Evaluator.
Definition Evaluator.h:15