GEGELATI
tpgFactory.h
1#ifndef TPG_FACTORY_H
2#define TPG_FACTORY_H
3
4#include <memory>
5
6#include "archive.h"
7#include "tpg/tpgAction.h"
8#include "tpg/tpgEdge.h"
9#include "tpg/tpgTeam.h"
10
11namespace TPG {
12
13 // Declare the TPGGraph class to be used as a parameter.
14 class TPGGraph;
15
16 // Declare the TPGExecutionEngine class to be used as a parameter.
17 class TPGExecutionEngine;
18
34 {
35
36 public:
38 virtual ~TPGFactory() = default;
39
45 virtual std::shared_ptr<TPGGraph> createTPGGraph(
46 const Environment& env) const;
47
53 virtual TPGTeam* createTPGTeam() const;
54
62 virtual TPGAction* createTPGAction(const uint64_t id) const;
63
75 virtual std::unique_ptr<TPGEdge> createTPGEdge(
76 const TPGVertex* src, const TPGVertex* dest,
77 const std::shared_ptr<Program::Program> prog) const;
78
91 virtual std::unique_ptr<TPG::TPGExecutionEngine>
93 Archive* arch = NULL) const;
94 };
95
96} // namespace TPG
97
98#endif // !TPG_GRAPH_ELEMENT_FACTORY_H
Definition: archive.h:80
The Environment class contains all information needed to execute a Program.
Definition: environment.h:84
Class representing an Action of a TPGGraph.
Definition: tpgAction.h:52
Factory for creating all elements constituting a TPG.
Definition: tpgFactory.h:34
virtual TPGTeam * createTPGTeam() const
Create a TPGTeam for a TPGGraph.
Definition: tpgFactory.cpp:11
virtual std::unique_ptr< TPGEdge > createTPGEdge(const TPGVertex *src, const TPGVertex *dest, const std::shared_ptr< Program::Program > prog) const
Create a TPGEdge for a TPGGraph.
Definition: tpgFactory.cpp:21
virtual TPGAction * createTPGAction(const uint64_t id) const
Create a TPGAction for a TPGGraph.
Definition: tpgFactory.cpp:16
virtual std::shared_ptr< TPGGraph > createTPGGraph(const Environment &env) const
Create a TPGGraph with this TPGFactory.
Definition: tpgFactory.cpp:5
virtual std::unique_ptr< TPG::TPGExecutionEngine > createTPGExecutionEngine(const Environment &env, Archive *arch=NULL) const
Create a TPGExecutionEngine for a TPGGraph produced by this TPGFactory.
Definition: tpgFactory.cpp:29
virtual ~TPGFactory()=default
Default virtual destructor.
Definition: tpgTeam.h:48
Abstract class representing the vertices of a TPGGraph.
Definition: tpgVertex.h:49
Definition: tpgActionInstrumented.h:8