BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
Guidance.h
Go to the documentation of this file.
1#ifndef BPMNOS_Model_Guidance_H
2#define BPMNOS_Model_Guidance_H
3
4#include <memory>
5#include <vector>
6#include <set>
7#include <string>
8#include <bpmn++.h>
9#include "Attribute.h"
10#include "Parameter.h"
11#include "Restriction.h"
12#include "Operator.h"
14
15namespace BPMNOS::Model {
16
17class Scenario;
18
19class Guidance {
20public:
23 AttributeRegistry attributeRegistry; ///< Registry allowing to look up attributes by their names.
24
27 std::vector< std::unique_ptr<Attribute> > attributes;
28 std::vector< std::unique_ptr<Restriction> > restrictions;
29 std::vector< std::unique_ptr<Operator> > operators;
30
31 std::set<const Attribute*> dependencies;
32
33 template <typename DataType>
34 void apply(const Scenario* scenario, BPMNOS::number currentTime, const BPMNOS::number instanceId, const BPMN::FlowNode* node, BPMNOS::Values& status, DataType& data, BPMNOS::Values& globals) const;
35
36 template <typename DataType>
37 BPMNOS::number getObjective(const BPMNOS::Values& status, const DataType& data, const BPMNOS::Values& globals) const;
38
39 template <typename DataType>
40 bool restrictionsSatisfied(const BPMN::FlowNode* node, const BPMNOS::Values& status, const DataType& data, const BPMNOS::Values& globals) const;
41
42};
43
44} // namespace BPMNOS::Model
45
46#endif // BPMNOS_Model_Guidance_H
BPMNOS::number getObjective(const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
Definition Guidance.cpp:78
std::vector< std::unique_ptr< Attribute > > attributes
Definition Guidance.h:27
void apply(const Scenario *scenario, BPMNOS::number currentTime, const BPMNOS::number instanceId, const BPMN::FlowNode *node, BPMNOS::Values &status, DataType &data, BPMNOS::Values &globals) const
Definition Guidance.cpp:124
std::vector< std::unique_ptr< Operator > > operators
Definition Guidance.h:29
AttributeRegistry attributeRegistry
Registry allowing to look up attributes by their names.
Definition Guidance.h:23
bool restrictionsSatisfied(const BPMN::FlowNode *node, const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
Definition Guidance.cpp:108
XML::bpmnos::tGuidance * element
Definition Guidance.h:22
Guidance(XML::bpmnos::tGuidance *guidance, const AttributeRegistry &attributeRegistry)
Definition Guidance.cpp:13
std::set< const Attribute * > dependencies
Definition Guidance.h:31
std::vector< std::unique_ptr< Restriction > > restrictions
Definition Guidance.h:28
The Scenario class holds data for all BPMN instances.
Definition Scenario.h:20
Base class for BPMN elements that may contain incoming and outgoing sequence flows.
Definition bpmn++.h:16670
BPMNOS_NUMBER_TYPE number
Definition Number.h:42