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

Private GIT Repository
cf54f4a6cc86f3d2d0726df25649a4745545f123
[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
35   static int translatePurpose(const QString& txt);  
36   static int translateMultiplicity(const QString& txt);
37
38   inline AbstractInterface *clone(){ return NULL; }
39
40
41 private:  
42   int multiplicity; // -1 means infinite multiplicity, and X>1, the max. number of instances
43
44
45 };
46
47 #endif // __REFERENCEINTERFACE_H__