42#include "program/program.h"
71 const std::shared_ptr<Program::Program> prog)
92 void setProgram(
const std::shared_ptr<Program::Program> prog)
const;
168 mutable std::shared_ptr<Program::Program>
program;
187 friend struct ::CounterReset;
The Program class contains a list of program lines that can be executed within a well defined Environ...
Definition program.h:57
Class representing edges of the Tangled Program Graphs.
Definition tpgEdge.h:54
std::shared_ptr< Program::Program > program
Definition tpgEdge.h:168
TPGEdge()=delete
Delete the default constructor.
virtual ~TPGEdge()=default
Default virtual destructor (for polymorphism)
const TPGVertex * source
Pointer to the source TPGVertex of this TPGEdge.
Definition tpgEdge.h:159
virtual const TPGVertex * getDestination() const
Get the destination TPGVertex of the TPGEdge.
Definition tpgEdge.cpp:95
virtual void setDestination(TPGVertex *newDestination)
Set a new destination TPGVertex to the TPGEdge.
Definition tpgEdge.cpp:100
static void resetEdgeIDCounter()
Reset the edge ID counter.
Definition tpgEdge.cpp:54
const TPGVertex * getSource() const
Get the source TPGVertex of the TPGEdge.
Definition tpgEdge.cpp:85
const TPGVertex * destination
Pointer to the destination TPGVertex of this TPGEdge.
Definition tpgEdge.h:162
Program::Program & getProgram() const
Get a const reference to the Program of the TPGEdge.
Definition tpgEdge.cpp:69
virtual uint64_t getEdgeID() const
Get the unique identifier of the TPGEdge.
Definition tpgEdge.cpp:105
static uint64_t incrementeCounter()
Incremente the edge ID counter and return the new value.
Definition tpgEdge.cpp:44
void setSource(TPGVertex *newSource)
Set a new source TPGVertex to the TPGEdge.
Definition tpgEdge.cpp:90
std::shared_ptr< Program::Program > getProgramSharedPointer()
Get the shared_pointer to the Program.
Definition tpgEdge.cpp:80
virtual void setEdgeID(uint64_t newID)
Set a new unique identifier to the TPGEdge.
Definition tpgEdge.cpp:59
static uint64_t getEdgeIDCounter()
Get the current value of the edge ID counter.
Definition tpgEdge.cpp:49
TPGEdge(const TPGVertex *src, const TPGVertex *dest, const std::shared_ptr< Program::Program > prog)
Main constructor of the TPGEdge class.
Definition tpgEdge.h:70
uint64_t edgeID
Unique identifier of the TPGEdge.
Definition tpgEdge.h:173
void setProgram(const std::shared_ptr< Program::Program > prog) const
Set a new Program for the TPGEdge.
Definition tpgEdge.cpp:74
Abstract class representing the vertices of a TPGGraph.
Definition tpgVertex.h:55
Definition executionStats.h:44
bool operator<(const TPGEdge &a, const TPGEdge &b)
Comparison function to enable sorting of TPGVertex with STL.
Definition tpgEdge.cpp:110
Struct to reset static counters in classes.
Definition counterReset.h:47