1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
#ifndef _VITE_GENERATOR_
#define _VITE_GENERATOR_
#include <QMainWindow>
#include "PajeGenerator.hpp"
#include "TauGenerator.hpp"
#include "OTFGenerator.hpp"
typedef struct _my_link{
int time;
int proc;
int type;
int value;
int key;
}my_link;
class Generator : public Writer{
private :
PajeGenerator* _pajeGen;
TauGenerator * _tauGen ;
OTFGenerator * _otfGen ;
bool _paje;
bool _tau;
bool _otf;
// Values
QString _name ; // Name of the file to create
int _depth ; // Depth of the container tree
int _procNbr ; // Number of procs
int _numberOfState ; // Number of different states
int _numberOfLine ; // Number of line generated
bool _counter ; // If counter are enabled
bool _event ; // If events are enabled
bool _link ; // If link are enabled
int _linkNbr ; // Number of proc with links
int _linkTypeNbr ; // Number of type of link
int _eventNbr ; // Number of proc with events
int _eventTypeNbr ; // Number of event type
int _counterNbr ; // Number of proc with counters
int _numberAction ; // Number of action available
// List of started links
QList<my_link> _startedLink ;
int _size ; // Number of link started
int* _arrayOfValues;
// Action = changeState, startLink, endLink, event, incCpt, decCpt
static const int TYPEACTION = 6;
static const int CHANGESTATE = 0;
static const int STARTLINK = 1;
static const int ENDLINK = 2;
static const int EVENT = 3;
static const int INCCPT = 4;
static const int DECCPT = 5;
int getRand (int maxVal);
void launchAction (int val, int time);
my_link getLink (int pos);
public :
// Constructor
Generator (QString name,
int depth, int procNbr, int nbrOfState, int nbrOfLine,
int countNbr, int eventNbr, int linkNbr,
int eventTypeNbr, int linkTypeNbr,
bool paje, bool otf, bool tau);
// Destructor
virtual ~Generator ();
// Main function that launch the creation of the traces
void generate ();
void initTrace (QString name, int depth, int procNbr, int stateTypeNbr, int eventTypeNbr, int linkTypeNbr, int varNbr);
void addState (int proc , int state, double time);
void startLink (int proc , int type , double time);
void endLink (int proc , int type , double time);
void addEvent (int proc , int type , double time);
void incCpt (int proc , int var , double time);
void decCpt (int proc , int var , double time);
void endTrace ();
};
#endif
|