GEGELATI
tpgInstrumentedFactory.h
1#ifndef TPG_INSTRUMENTED_FACTORY
2#define TPG_INSTRUMENTED_FACTORY
3
4#include "tpg/tpgFactory.h"
5#include "tpg/tpgGraph.h"
6
7namespace TPG {
8
16 {
17 public:
20 virtual std::shared_ptr<TPGGraph> createTPGGraph(
21 const Environment& env) const override;
22
24 virtual TPGTeam* createTPGTeam() const override;
25
27 virtual TPGAction* createTPGAction(const uint64_t id) const override;
28
30 virtual std::unique_ptr<TPGEdge> createTPGEdge(
31 const TPGVertex* src, const TPGVertex* dest,
32 const std::shared_ptr<Program::Program> prog) const override;
33
36 virtual std::unique_ptr<TPGExecutionEngine> createTPGExecutionEngine(
37 const Environment& env, Archive* arch = NULL) const override;
45 void resetTPGGraphCounters(const TPG::TPGGraph& tpg) const;
46
66 };
67} // namespace TPG
68
69#endif // !TPG_INSTRUMENTED_FACTORY
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
Class for storing a Tangled-Program-Graph.
Definition: tpgGraph.h:54
Definition: tpgInstrumentedFactory.h:16
virtual std::unique_ptr< TPGExecutionEngine > createTPGExecutionEngine(const Environment &env, Archive *arch=NULL) const override
Definition: tpgInstrumentedFactory.cpp:34
virtual std::shared_ptr< TPGGraph > createTPGGraph(const Environment &env) const override
Definition: tpgInstrumentedFactory.cpp:7
void resetTPGGraphCounters(const TPG::TPGGraph &tpg) const
Reset all visit and traversal counters of a TPGGraph.
Definition: tpgInstrumentedFactory.cpp:39
void clearUnusedTPGGraphElements(TPG::TPGGraph &tpg) const
Removes from the TPGGraph the vertices and edges that were never visited (since the last reset).
Definition: tpgInstrumentedFactory.cpp:61
virtual TPGTeam * createTPGTeam() const override
Specialization of the method returning a TPGTeamInstrumented.
Definition: tpgInstrumentedFactory.cpp:14
virtual std::unique_ptr< TPGEdge > createTPGEdge(const TPGVertex *src, const TPGVertex *dest, const std::shared_ptr< Program::Program > prog) const override
Specialization of the method returning a TPGEdgeInstrumented.
Definition: tpgInstrumentedFactory.cpp:25
virtual TPGAction * createTPGAction(const uint64_t id) const override
Specialization of the method returning a TPGActionInstrumented.
Definition: tpgInstrumentedFactory.cpp:19
Definition: tpgTeam.h:48
Abstract class representing the vertices of a TPGGraph.
Definition: tpgVertex.h:49
Definition: tpgActionInstrumented.h:8