BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
BestLimitedChoice.h
Go to the documentation of this file.
1#ifndef BPMNOS_Execution_BestLimitedChoice_H
2#define BPMNOS_Execution_BestLimitedChoice_H
3
4#include <bpmn++.h>
8
9namespace BPMNOS::Execution {
10
11/**
12 * @brief Class creating a choice decision for a token at a decision task.
13 *
14 * The BestLimitedChoice dispatcher creates a the best evaluated choice considering
15 * enumerated values and the boundaries for each choice.
16 */
17class BestLimitedChoice : public GreedyDispatcher< std::weak_ptr<const Token>, std::weak_ptr<const DecisionRequest> > {
18public:
20 void connect(Mediator* mediator) override;
21 void notice(const Observable* observable) override;
22 std::shared_ptr<Event> dispatchEvent( const SystemState* systemState ) override;
23private:
24 std::shared_ptr<Decision> determineBestChoices(std::shared_ptr<const DecisionRequest> request);
25 void determineAlternatives( std::vector<BPMNOS::Values>& alternatives, const BPMNOS::Model::ExtensionElements* extensionElements, BPMNOS::Values& status, BPMNOS::Values& data, BPMNOS::Values& globals, BPMNOS::Values& choices, size_t index = 0);
26};
27
28} // namespace BPMNOS::Execution
29
30#endif // BPMNOS_Execution_BestLimitedChoice_H
31
Class creating a choice decision for a token at a decision task.
void notice(const Observable *observable) override
void connect(Mediator *mediator) override
std::shared_ptr< Event > dispatchEvent(const SystemState *systemState) override
Represents an abstract base class for a pending Evaluator.
Definition Evaluator.h:15
Class for dispatching the event with the best evaluation.
A class representing the state that the execution or simulation of a given scenario is in.
Definition SystemState.h:21
Class holding extension elements representing execution data for nodes.
Represents an abstract base class for a class that is an event listener and notifier.
Definition Mediator.h:13