BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
DecisionTask.h
Go to the documentation of this file.
1#ifndef BPMNOS_Model_DecisionTask_H
2#define BPMNOS_Model_DecisionTask_H
3
4#include <memory>
5#include <vector>
6#include <optional>
7#include <bpmn++.h>
9
10namespace BPMNOS::Model {
11
12class ExtensionElements;
13
14/**
15 * @brief Class representing a task in which one or more choices have to be made.
16 */
17class DecisionTask : public BPMN::Task {
18 friend class Model;
19public:
21
22 template <typename DataType>
23 std::vector<std::vector<number>> enumerateAlternatives(const BPMNOS::Values& status, const DataType& data, const BPMNOS::Values& globals) const;
24
25private:
26 static void determineAlternatives(
27 std::vector<std::vector<number>>& alternatives,
29 BPMNOS::Values& status,
30 BPMNOS::Values& data,
31 BPMNOS::Values& globals,
32 std::vector<number>& choices,
33 size_t index
34 );
35};
36
37} // namespace BPMNOS::Model
38
39#endif // BPMNOS_Model_DecisionTask_H
Class representing a task in which one or more choices have to be made.
std::vector< std::vector< number > > enumerateAlternatives(const BPMNOS::Values &status, const DataType &data, const BPMNOS::Values &globals) const
DecisionTask(XML::bpmn::tTask *task, BPMN::Scope *parent)
Class holding extension elements representing execution data for nodes.
Represents a BPMN model with all its processes.
Definition Model.h:22
std::unique_ptr< ExtensionElements > extensionElements
Definition bpmn++.h:16299
Scope * parent
Reference to the parent node.
Definition bpmn++.h:16592
Base class for BPMN elements that may contain a ChildNode elements.
Definition bpmn++.h:16510