BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
BPMNOS::Model::Scenario Class Referenceabstract

Abstract base class for scenarios holding data for all BPMN instances. More...

Detailed Description

Definition at line 21 of file Scenario.h.

#include <Scenario.h>

Inheritance diagram for BPMNOS::Model::Scenario:

Classes

struct  InstanceData
 

Public Member Functions

virtual ~Scenario ()=default
 
const ModelgetModel () const
 Method returning the model.
 
virtual BPMNOS::number getEarliestInstantiationTime () const =0
 Method returning the time of the earliest instantiation.
 
virtual bool isCompleted (const BPMNOS::number currentTime) const =0
 Method returning true if the currentTime exceeds the completion time.
 
virtual std::vector< std::tuple< const BPMN::Process *, BPMNOS::Values, BPMNOS::Values > > getCurrentInstantiations (const BPMNOS::number currentTime) const =0
 Method returning a vector of all instances that are known to be instantiated at the given time.
 
virtual std::vector< const InstanceData * > getCreatedInstances (const BPMNOS::number currentTime) const =0
 Method returning a vector of all instances that have been created until the given time.
 
virtual std::vector< const InstanceData * > getKnownInstances (const BPMNOS::number currentTime) const =0
 Method returning a vector of all instances that have been created or are known for sure until the given time.
 
virtual std::optional< BPMNOS::numbergetKnownValue (const Scenario::InstanceData *instance, const BPMNOS::Model::Attribute *attribute, const BPMNOS::number currentTime) const =0
 Method returning a known value of an attribute.
 
virtual std::optional< BPMNOS::numbergetKnownValue (const BPMNOS::number instanceId, const BPMNOS::Model::Attribute *attribute, const BPMNOS::number currentTime) const =0
 Method returning a known value of an attribute.
 
virtual std::optional< BPMNOS::ValuesgetKnownValues (const BPMNOS::number instanceId, const BPMN::Node *node, const BPMNOS::number currentTime) const =0
 Method returning all known values of new attributes.
 
virtual std::optional< BPMNOS::ValuesgetKnownData (const BPMNOS::number instanceId, const BPMN::Node *node, const BPMNOS::number currentTime) const =0
 Method returning all known values of new attributes.
 
virtual void setTaskCompletionStatus (const BPMNOS::number instanceId, const BPMN::Node *task, BPMNOS::Values status) const
 Store the completion status when a task enters BUSY state.
 
virtual BPMNOS::Values getTaskCompletionStatus (const BPMNOS::number instanceId, const BPMN::Node *task) const
 Get the completion status for a task.
 
virtual void initializeArrivalData (BPMNOS::number instanceId, const BPMN::Node *node, const Values &status, const Values &data, const Values &globals) const
 Initialize arrival data when a token arrives at an activity.
 

Public Attributes

BPMNOS::Values globals
 
std::map< std::pair< size_t, const BPMN::Node * >, BPMNOS::ValuestaskCompletionStatus
 Stored completion status per (instanceId, task)
 
const Modelmodel
 Pointer to the BPMN model.
 

Static Public Attributes

static constexpr char delimiters [] = {'^','#'}
 Delimiters used for disambiguation of identifiers of non-interrupting event subprocesses and multi-instance activities.
 

Protected Member Functions

virtual Values getKnownInitialStatus (const InstanceData *, const BPMNOS::number time) const =0
 Method returning the initial status attributes for process instantiation.
 
virtual Values getKnownInitialData (const InstanceData *, const BPMNOS::number time) const =0
 Method returning the initial data attributes for process instantiation.
 

Constructor & Destructor Documentation

◆ ~Scenario()

virtual BPMNOS::Model::Scenario::~Scenario ( )
virtualdefault

Member Function Documentation

◆ getCreatedInstances()

virtual std::vector< const InstanceData * > BPMNOS::Model::Scenario::getCreatedInstances ( const BPMNOS::number currentTime) const
pure virtual

◆ getCurrentInstantiations()

virtual std::vector< std::tuple< const BPMN::Process *, BPMNOS::Values, BPMNOS::Values > > BPMNOS::Model::Scenario::getCurrentInstantiations ( const BPMNOS::number currentTime) const
pure virtual

◆ getEarliestInstantiationTime()

virtual BPMNOS::number BPMNOS::Model::Scenario::getEarliestInstantiationTime ( ) const
pure virtual

◆ getKnownData()

virtual std::optional< BPMNOS::Values > BPMNOS::Model::Scenario::getKnownData ( const BPMNOS::number instanceId,
const BPMN::Node * node,
const BPMNOS::number currentTime ) const
pure virtual

If at least one attribute value is not yet known, the method returns std::nullopt.

Implemented in BPMNOS::Model::DynamicScenario, BPMNOS::Model::StaticScenario, and BPMNOS::Model::StochasticScenario.

◆ getKnownInitialData()

virtual Values BPMNOS::Model::Scenario::getKnownInitialData ( const InstanceData * ,
const BPMNOS::number time ) const
protectedpure virtual

Used internally by getCurrentInstantiations to get process-level data attributes.

Implemented in BPMNOS::Model::DynamicScenario, BPMNOS::Model::StaticScenario, and BPMNOS::Model::StochasticScenario.

◆ getKnownInitialStatus()

virtual Values BPMNOS::Model::Scenario::getKnownInitialStatus ( const InstanceData * ,
const BPMNOS::number time ) const
protectedpure virtual

Used internally by getCurrentInstantiations to get process-level status attributes.

Implemented in BPMNOS::Model::DynamicScenario, BPMNOS::Model::StaticScenario, and BPMNOS::Model::StochasticScenario.

◆ getKnownInstances()

virtual std::vector< const InstanceData * > BPMNOS::Model::Scenario::getKnownInstances ( const BPMNOS::number currentTime) const
pure virtual

◆ getKnownValue() [1/2]

virtual std::optional< BPMNOS::number > BPMNOS::Model::Scenario::getKnownValue ( const BPMNOS::number instanceId,
const BPMNOS::Model::Attribute * attribute,
const BPMNOS::number currentTime ) const
pure virtual

If the attribute value is not yet known, the method returns std::nullopt.

Implemented in BPMNOS::Model::DynamicScenario, BPMNOS::Model::StaticScenario, and BPMNOS::Model::StochasticScenario.

◆ getKnownValue() [2/2]

virtual std::optional< BPMNOS::number > BPMNOS::Model::Scenario::getKnownValue ( const Scenario::InstanceData * instance,
const BPMNOS::Model::Attribute * attribute,
const BPMNOS::number currentTime ) const
pure virtual

If the attribute value is not yet known, the method returns std::nullopt.

Implemented in BPMNOS::Model::DynamicScenario, BPMNOS::Model::StaticScenario, and BPMNOS::Model::StochasticScenario.

◆ getKnownValues()

virtual std::optional< BPMNOS::Values > BPMNOS::Model::Scenario::getKnownValues ( const BPMNOS::number instanceId,
const BPMN::Node * node,
const BPMNOS::number currentTime ) const
pure virtual

If at least one attribute value is not yet known, the method returns std::nullopt.

Implemented in BPMNOS::Model::DynamicScenario, BPMNOS::Model::StaticScenario, and BPMNOS::Model::StochasticScenario.

◆ getModel()

const Model * BPMNOS::Model::Scenario::getModel ( ) const
inline

Definition at line 37 of file Scenario.h.

◆ getTaskCompletionStatus()

virtual BPMNOS::Values BPMNOS::Model::Scenario::getTaskCompletionStatus ( const BPMNOS::number instanceId,
const BPMN::Node * task ) const
inlinevirtual

For deterministic scenarios, returns the value stored by setTaskCompletionStatus(). For stochastic scenarios, evaluates COMPLETION expressions and returns updated status.

Parameters
instanceIdThe instance identifier.
taskThe task node that is completing.
Returns
Completion status values.

Definition at line 117 of file Scenario.h.

◆ initializeArrivalData()

virtual void BPMNOS::Model::Scenario::initializeArrivalData ( BPMNOS::number instanceId,
const BPMN::Node * node,
const Values & status,
const Values & data,
const Values & globals ) const
inlinevirtual

Evaluates ARRIVAL expressions using the parent scope's context. Default implementation does nothing - only StochasticScenario evaluates ARRIVAL.

Parameters
instanceIdThe instance identifier.
nodeThe activity node being entered.
statusParent scope's status attributes.
dataParent scope's data attributes.
globalsGlobal attributes.

Reimplemented in BPMNOS::Model::StochasticScenario.

Definition at line 136 of file Scenario.h.

◆ isCompleted()

virtual bool BPMNOS::Model::Scenario::isCompleted ( const BPMNOS::number currentTime) const
pure virtual

◆ setTaskCompletionStatus()

virtual void BPMNOS::Model::Scenario::setTaskCompletionStatus ( const BPMNOS::number instanceId,
const BPMN::Node * task,
BPMNOS::Values status ) const
inlinevirtual
Parameters
instanceIdThe instance identifier.
taskThe task node entering BUSY state.
statusThe predicted completion status values.

Reimplemented in BPMNOS::Model::StochasticScenario.

Definition at line 99 of file Scenario.h.

Member Data Documentation

◆ delimiters

char BPMNOS::Model::Scenario::delimiters[] = {'^','#'}
staticconstexpr

Definition at line 32 of file Scenario.h.

◆ globals

BPMNOS::Values BPMNOS::Model::Scenario::globals

Definition at line 144 of file Scenario.h.

◆ model

const Model* BPMNOS::Model::Scenario::model

Definition at line 148 of file Scenario.h.

◆ taskCompletionStatus

std::map<std::pair<size_t, const BPMN::Node*>, BPMNOS::Values> BPMNOS::Model::Scenario::taskCompletionStatus
mutable

Definition at line 147 of file Scenario.h.


The documentation for this class was generated from the following file: