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

Detailed Description

Definition at line 32 of file DynamicScenario.h.

#include <DynamicScenario.h>

Inheritance diagram for BPMNOS::Model::DynamicScenario:

Public Member Functions

 DynamicScenario (const Model *model, BPMNOS::number earliestInstantiationTime, BPMNOS::number latestInstantiationTime, const std::unordered_map< const Attribute *, BPMNOS::number > &globalValueMap)
 
BPMNOS::number getEarliestInstantiationTime () const override
 Method returning the time of the earliest instantiation.
 
bool isCompleted (const BPMNOS::number currentTime) const override
 Method returning true if the currentTime exceeds the completion time.
 
std::vector< std::tuple< const BPMN::Process *, BPMNOS::Values, BPMNOS::Values > > getCurrentInstantiations (const BPMNOS::number currentTime) const override
 Method returning a vector of all instances that are known to be instantiated at the given time.
 
std::vector< const InstanceData * > getCreatedInstances (const BPMNOS::number currentTime) const override
 Method returning a vector of all instances that have been created until the given time.
 
std::vector< const InstanceData * > getKnownInstances (const BPMNOS::number currentTime) const override
 Method returning a vector of all instances that have been created or are known for sure until the given time.
 
std::optional< BPMNOS::numbergetKnownValue (const Scenario::InstanceData *instance, const BPMNOS::Model::Attribute *attribute, const BPMNOS::number currentTime) const override
 Method returning a known value of an attribute.
 
std::optional< BPMNOS::numbergetKnownValue (const BPMNOS::number instanceId, const BPMNOS::Model::Attribute *attribute, const BPMNOS::number currentTime) const override
 Method returning a known value of an attribute.
 
std::optional< BPMNOS::ValuesgetKnownValues (const BPMNOS::number instanceId, const BPMN::Node *node, const BPMNOS::number currentTime) const override
 Method returning all known values of new attributes.
 
std::optional< BPMNOS::ValuesgetKnownData (const BPMNOS::number instanceId, const BPMN::Node *node, const BPMNOS::number currentTime) const override
 Method returning all known values of new attributes.
 
void revealData (BPMNOS::number currentTime) const
 
- Public Member Functions inherited from BPMNOS::Model::Scenario
virtual ~Scenario ()=default
 
const ModelgetModel () const
 Method returning the model.
 
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.
 

Protected Member Functions

Values getKnownInitialStatus (const InstanceData *, const BPMNOS::number time) const override
 Method returning the initial status attributes for process instantiation.
 
Values getKnownInitialData (const InstanceData *, const BPMNOS::number time) const override
 Method returning the initial data attributes for process instantiation.
 
void addInstance (const BPMN::Process *process, const BPMNOS::number instanceId, BPMNOS::number instantiationTime)
 
void setValue (const BPMNOS::number instanceId, const Attribute *attribute, std::optional< BPMNOS::number > value)
 
void setDisclosure (const BPMNOS::number instanceId, const BPMN::Node *node, BPMNOS::number disclosureTime)
 
void addPendingDisclosure (const BPMNOS::number instanceId, PendingDisclosure &&pending)
 
- Protected Member Functions inherited from BPMNOS::Model::Scenario

Protected Attributes

std::unordered_map< size_t, InstanceDatainstances
 
std::unordered_map< size_t, std::unordered_map< const BPMN::Node *, BPMNOS::number > > disclosure
 Instance ID -> Node -> time when node's data is disclosed.
 
std::unordered_map< size_t, std::vector< PendingDisclosure > > pendingDisclosures
 Instance ID -> pending disclosures.
 
std::set< std::pair< size_t, const Attribute * > > disclosedAttributes
 Track which attributes have been disclosed.
 
BPMNOS::number earliestInstantiationTime
 
BPMNOS::number latestInstantiationTime
 

Friends

class DynamicDataProvider
 

Additional Inherited Members

- Public Attributes inherited from BPMNOS::Model::Scenario
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 inherited from BPMNOS::Model::Scenario
static constexpr char delimiters [] = {'^','#'}
 Delimiters used for disambiguation of identifiers of non-interrupting event subprocesses and multi-instance activities.
 

Constructor & Destructor Documentation

◆ DynamicScenario()

DynamicScenario::DynamicScenario ( const Model * model,
BPMNOS::number earliestInstantiationTime,
BPMNOS::number latestInstantiationTime,
const std::unordered_map< const Attribute *, BPMNOS::number > & globalValueMap )

Definition at line 7 of file DynamicScenario.cpp.

Member Function Documentation

◆ addInstance()

void DynamicScenario::addInstance ( const BPMN::Process * process,
const BPMNOS::number instanceId,
BPMNOS::number instantiationTime )
protected

Definition at line 18 of file DynamicScenario.cpp.

◆ addPendingDisclosure()

void DynamicScenario::addPendingDisclosure ( const BPMNOS::number instanceId,
PendingDisclosure && pending )
protected

Definition at line 171 of file DynamicScenario.cpp.

◆ getCreatedInstances()

std::vector< const Scenario::InstanceData * > DynamicScenario::getCreatedInstances ( const BPMNOS::number currentTime) const
overridevirtual

Implements BPMNOS::Model::Scenario.

Definition at line 38 of file DynamicScenario.cpp.

◆ getCurrentInstantiations()

std::vector< std::tuple< const BPMN::Process *, BPMNOS::Values, BPMNOS::Values > > DynamicScenario::getCurrentInstantiations ( const BPMNOS::number currentTime) const
overridevirtual

Implements BPMNOS::Model::Scenario.

Definition at line 57 of file DynamicScenario.cpp.

◆ getEarliestInstantiationTime()

BPMNOS::number DynamicScenario::getEarliestInstantiationTime ( ) const
overridevirtual

Implements BPMNOS::Model::Scenario.

Definition at line 30 of file DynamicScenario.cpp.

◆ getKnownData()

std::optional< BPMNOS::Values > DynamicScenario::getKnownData ( const BPMNOS::number instanceId,
const BPMN::Node * node,
const BPMNOS::number currentTime ) const
overridevirtual

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

Implements BPMNOS::Model::Scenario.

Definition at line 156 of file DynamicScenario.cpp.

◆ getKnownInitialData()

BPMNOS::Values DynamicScenario::getKnownInitialData ( const InstanceData * ,
const BPMNOS::number time ) const
overrideprotectedvirtual

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

Implements BPMNOS::Model::Scenario.

Definition at line 87 of file DynamicScenario.cpp.

◆ getKnownInitialStatus()

BPMNOS::Values DynamicScenario::getKnownInitialStatus ( const InstanceData * ,
const BPMNOS::number time ) const
overrideprotectedvirtual

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

Implements BPMNOS::Model::Scenario.

Definition at line 79 of file DynamicScenario.cpp.

◆ getKnownInstances()

std::vector< const Scenario::InstanceData * > DynamicScenario::getKnownInstances ( const BPMNOS::number currentTime) const
overridevirtual

Implements BPMNOS::Model::Scenario.

Definition at line 48 of file DynamicScenario.cpp.

◆ getKnownValue() [1/2]

std::optional< BPMNOS::number > DynamicScenario::getKnownValue ( const BPMNOS::number instanceId,
const BPMNOS::Model::Attribute * attribute,
const BPMNOS::number currentTime ) const
overridevirtual

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

Implements BPMNOS::Model::Scenario.

Definition at line 137 of file DynamicScenario.cpp.

◆ getKnownValue() [2/2]

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

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

Implements BPMNOS::Model::Scenario.

Definition at line 95 of file DynamicScenario.cpp.

◆ getKnownValues()

std::optional< BPMNOS::Values > DynamicScenario::getKnownValues ( const BPMNOS::number instanceId,
const BPMN::Node * node,
const BPMNOS::number currentTime ) const
overridevirtual

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

Implements BPMNOS::Model::Scenario.

Definition at line 141 of file DynamicScenario.cpp.

◆ isCompleted()

bool DynamicScenario::isCompleted ( const BPMNOS::number currentTime) const
overridevirtual

Implements BPMNOS::Model::Scenario.

Definition at line 34 of file DynamicScenario.cpp.

◆ revealData()

void DynamicScenario::revealData ( BPMNOS::number currentTime) const

Definition at line 175 of file DynamicScenario.cpp.

◆ setDisclosure()

void DynamicScenario::setDisclosure ( const BPMNOS::number instanceId,
const BPMN::Node * node,
BPMNOS::number disclosureTime )
protected

Definition at line 26 of file DynamicScenario.cpp.

◆ setValue()

void DynamicScenario::setValue ( const BPMNOS::number instanceId,
const Attribute * attribute,
std::optional< BPMNOS::number > value )
protected

Definition at line 22 of file DynamicScenario.cpp.

Friends And Related Symbol Documentation

◆ DynamicDataProvider

friend class DynamicDataProvider
friend

Definition at line 33 of file DynamicScenario.h.

Member Data Documentation

◆ disclosedAttributes

std::set<std::pair<size_t, const Attribute*> > BPMNOS::Model::DynamicScenario::disclosedAttributes
mutableprotected

Definition at line 66 of file DynamicScenario.h.

◆ disclosure

std::unordered_map<size_t, std::unordered_map<const BPMN::Node*, BPMNOS::number> > BPMNOS::Model::DynamicScenario::disclosure
protected

Definition at line 64 of file DynamicScenario.h.

◆ earliestInstantiationTime

BPMNOS::number BPMNOS::Model::DynamicScenario::earliestInstantiationTime
protected

Definition at line 67 of file DynamicScenario.h.

◆ instances

std::unordered_map<size_t, InstanceData> BPMNOS::Model::DynamicScenario::instances
mutableprotected

Definition at line 63 of file DynamicScenario.h.

◆ latestInstantiationTime

BPMNOS::number BPMNOS::Model::DynamicScenario::latestInstantiationTime
protected

Definition at line 68 of file DynamicScenario.h.

◆ pendingDisclosures

std::unordered_map<size_t, std::vector<PendingDisclosure> > BPMNOS::Model::DynamicScenario::pendingDisclosures
mutableprotected

Definition at line 65 of file DynamicScenario.h.


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