]> AND Private Git Repository - blast.git/blob - ReferenceInterface.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
finished testbench generation
[blast.git] / ReferenceInterface.h
1 #ifndef __REFERENCEINTERFACE_H__
2 #define __REFERENCEINTERFACE_H__
3
4 #include <iostream>
5
6 #include <QtCore>
7 #include <QtGui>
8
9 #include "AbstractInterface.h"
10
11 #include "Exception.h"
12
13 using namespace std;
14 using namespace Qt;
15
16
17 class ReferenceInterface : public AbstractInterface {
18
19 public :  
20
21   ReferenceInterface(AbstractBlock *_owner) throw(Exception);
22   ReferenceInterface(AbstractBlock* _owner, const QString& _name, int _direction, int _purpose, const QString& _type, const QString& _width, int _endianess = LittleEndian, int _multiplicity=1) throw (Exception);
23
24   // getters
25   inline int getMultiplicity() { return multiplicity; }
26   int getClockDomain() throw(Exception); // determine at which freq. is synchronized iface
27   // setters
28   void setMultiplicity(int _multiplicity);
29
30   // testers
31   bool isReferenceInterface();
32
33   // others
34   bool checkSetClockIface(QString _name);
35
36   static int translatePurpose(const QString& txt);  
37   static int translateMultiplicity(const QString& txt);
38
39   inline AbstractInterface *clone(){ return NULL; }
40
41
42 private:  
43   int multiplicity; // -1 means infinite multiplicity, and X>1, the max. number of instances
44
45
46 };
47
48 #endif // __REFERENCEINTERFACE_H__