BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
DataProvider.h
Go to the documentation of this file.
1#ifndef BPMNOS_Model_DataProvider_H
2#define BPMNOS_Model_DataProvider_H
3
4#include <string>
5#include <memory>
6#include <unordered_map>
7#include <bpmn++.h>
12#include "Scenario.h"
13
14namespace BPMNOS::Model {
15
16
17/**
18 * @brief Abstract base class representing a data provider for BPMN instance data.
19 *
20 * The DataProvider class is responsible for providing and managing instance data
21 * for BPMN processes.
22 */
24public:
25 /**
26 * @brief Constructor for DataProvider.
27 *
28 * @param modelFile The file path to the BPMN model file.
29 */
30 DataProvider(const std::string& modelFile, const std::vector<std::string>& folders);
31 virtual ~DataProvider() = 0;
32 const Model& getModel() const;
33
34 virtual std::unique_ptr<Scenario> createScenario(unsigned int scenarioId = 0) = 0;
35
36protected:
37 std::unique_ptr<Model> model; ///< Pointer to the BPMN model.
38
39 DataInput attributes; ///< Map holding all attributes in the model with keys being the process (or nullptr for global attributes) and attribute id
40};
41
42} // namespace BPMNOS::Model
43
44#endif // BPMNOS_Model_DataProvider_H
Abstract base class representing a data provider for BPMN instance data.
DataInput attributes
Map holding all attributes in the model with keys being the process (or nullptr for global attributes...
DataProvider(const std::string &modelFile, const std::vector< std::string > &folders)
Constructor for DataProvider.
virtual std::unique_ptr< Scenario > createScenario(unsigned int scenarioId=0)=0
const Model & getModel() const
std::unique_ptr< Model > model
Pointer to the BPMN model.
Represents a BPMN model with all its processes.
Definition Model.h:21
std::unordered_map< const BPMN::Process *, std::unordered_map< std::string, const Attribute * > > DataInput
Definition Scenario.h:15