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

Class representing a data provider for dynamic BPMN instance data. More...

Detailed Description

The DynamicDataProvider class is responsible for providing and managing instance data for BPMN processes.

Definition at line 31 of file DynamicDataProvider.h.

#include <DynamicDataProvider.h>

Inheritance diagram for BPMNOS::Model::DynamicDataProvider:

Classes

struct  DynamicInstanceData
 

Public Member Functions

 DynamicDataProvider (const std::string &modelFile, const std::string &instanceFileOrString)
 Constructor for DynamicDataProvider.
 
 DynamicDataProvider (const std::string &modelFile, const std::vector< std::string > &folders, const std::string &instanceFileOrString)
 Constructor for DynamicDataProvider.
 
 ~DynamicDataProvider () override=default
 
std::unique_ptr< ScenariocreateScenario (unsigned int scenarioId=0) override
 
- Public Member Functions inherited from BPMNOS::Model::DataProvider
 DataProvider (const std::string &modelFile, const std::vector< std::string > &folders)
 Constructor for DataProvider.
 
virtual ~DataProvider ()=0
 
const ModelgetModel () const
 

Protected Member Functions

void readInstances ()
 
void ensureDefaultValue (DynamicInstanceData &instance, const std::string attributeId, std::optional< BPMNOS::number > value=std::nullopt)
 
std::pair< std::string, std::string > parseInitialization (const std::string &initialization) const
 
BPMNOS::number evaluateExpression (const std::string &expression) const
 
BPMNOS::number getEffectiveDisclosure (size_t instanceId, const BPMN::Node *node, BPMNOS::number ownDisclosure)
 
- Protected Member Functions inherited from BPMNOS::Model::DataProvider
BPMN::NodefindNode (const std::string &nodeId) const
 

Protected Attributes

CSVReader reader
 
std::unordered_map< long unsigned int, DynamicInstanceDatainstances
 
std::unordered_map< const Attribute *, BPMNOS::numberglobalValueMap
 
std::unordered_map< size_t, std::vector< DeferredInitialization > > deferredInitializations
 Instance ID -> deferred inits.
 
std::unordered_map< size_t, std::unordered_map< const BPMN::Node *, BPMNOS::number > > disclosure
 Instance ID -> Node -> time when node's data is disclosed.
 
BPMNOS::number earliestInstantiation
 
BPMNOS::number latestInstantiation
 
- Protected Attributes inherited from BPMNOS::Model::DataProvider
std::unique_ptr< Modelmodel
 Pointer to the BPMN model.
 
DataInput attributes
 Map holding all attributes in the model with keys being the process (or nullptr for global attributes) and attribute id. TODO: Remove when old CSV format support is removed.
 

Constructor & Destructor Documentation

◆ DynamicDataProvider() [1/2]

DynamicDataProvider::DynamicDataProvider ( const std::string & modelFile,
const std::string & instanceFileOrString )
Parameters
modelFileThe file path to the BPMN model file.
instanceFileOrStringThe file path to the instance data file or a string containing the data.

Definition at line 15 of file DynamicDataProvider.cpp.

◆ DynamicDataProvider() [2/2]

DynamicDataProvider::DynamicDataProvider ( const std::string & modelFile,
const std::vector< std::string > & folders,
const std::string & instanceFileOrString )
Parameters
modelFileThe file path to the BPMN model file.
foldersThe folders containing lookup tables.
instanceFileOrStringThe file path to the instance data file or a string containing the data.

Definition at line 20 of file DynamicDataProvider.cpp.

◆ ~DynamicDataProvider()

BPMNOS::Model::DynamicDataProvider::~DynamicDataProvider ( )
overridedefault

Member Function Documentation

◆ createScenario()

std::unique_ptr< Scenario > DynamicDataProvider::createScenario ( unsigned int scenarioId = 0)
overridevirtual

Implements BPMNOS::Model::DataProvider.

Definition at line 310 of file DynamicDataProvider.cpp.

◆ ensureDefaultValue()

void DynamicDataProvider::ensureDefaultValue ( DynamicInstanceData & instance,
const std::string attributeId,
std::optional< BPMNOS::number > value = std::nullopt )
protected

Definition at line 282 of file DynamicDataProvider.cpp.

◆ evaluateExpression()

BPMNOS::number DynamicDataProvider::evaluateExpression ( const std::string & expression) const
protected

Definition at line 240 of file DynamicDataProvider.cpp.

◆ getEffectiveDisclosure()

BPMNOS::number DynamicDataProvider::getEffectiveDisclosure ( size_t instanceId,
const BPMN::Node * node,
BPMNOS::number ownDisclosure )
protected

Definition at line 259 of file DynamicDataProvider.cpp.

◆ parseInitialization()

std::pair< std::string, std::string > DynamicDataProvider::parseInitialization ( const std::string & initialization) const
protected

Definition at line 212 of file DynamicDataProvider.cpp.

◆ readInstances()

void DynamicDataProvider::readInstances ( )
protected

Definition at line 44 of file DynamicDataProvider.cpp.

Member Data Documentation

◆ deferredInitializations

std::unordered_map< size_t, std::vector<DeferredInitialization> > BPMNOS::Model::DynamicDataProvider::deferredInitializations
protected

Definition at line 62 of file DynamicDataProvider.h.

◆ disclosure

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

Definition at line 63 of file DynamicDataProvider.h.

◆ earliestInstantiation

BPMNOS::number BPMNOS::Model::DynamicDataProvider::earliestInstantiation
protected

Definition at line 64 of file DynamicDataProvider.h.

◆ globalValueMap

std::unordered_map< const Attribute*, BPMNOS::number > BPMNOS::Model::DynamicDataProvider::globalValueMap
protected

Definition at line 61 of file DynamicDataProvider.h.

◆ instances

std::unordered_map< long unsigned int, DynamicInstanceData > BPMNOS::Model::DynamicDataProvider::instances
protected

Definition at line 60 of file DynamicDataProvider.h.

◆ latestInstantiation

BPMNOS::number BPMNOS::Model::DynamicDataProvider::latestInstantiation
protected

Definition at line 65 of file DynamicDataProvider.h.

◆ reader

CSVReader BPMNOS::Model::DynamicDataProvider::reader
protected

Definition at line 51 of file DynamicDataProvider.h.


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