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

Private GIT Repository
start to include clkdomain converters
[blast.git] / AbstractInputModifier.h
1 #ifndef __ABSTRACTINPUTMODIFIER_H__\r
2 #define __ABSTRACTINPUTMODIFIER_H__\r
3 \r
4 #include <iostream>\r
5 \r
6 #include <QtCore>\r
7 \r
8 #include "Exception.h"\r
9 \r
10 class ConnectedInterface;\r
11 \r
12 using namespace std;\r
13 using namespace Qt;\r
14 \r
15 class AbstractInputModifier {\r
16 \r
17 public:\r
18 \r
19   enum ModifierVHDLContext {AnyContext = 0, Entity = 1, Component = 2, Architecture = 3, Signal = 4 };\r
20   enum ModifierVHDLFlags { NoComma = 1 };\r
21       \r
22   AbstractInputModifier(ConnectedInterface* _associatedIface);\r
23   virtual ~AbstractInputModifier();\r
24 \r
25   //getters\r
26   virtual QString getTypeStr() = 0;\r
27   virtual QString getParametersStr() = 0;\r
28 \r
29   // setters\r
30 \r
31   // testers\r
32   virtual bool isDelay();\r
33   virtual bool isComplexDelay();\r
34   virtual bool isFIFO();\r
35   virtual bool isDecimator();\r
36 \r
37   // others\r
38   virtual QList<char>* getModifiedInput(QList<char>* input) = 0;\r
39   virtual QString toVHDL(int context, int flags) throw(Exception) = 0;\r
40 \r
41  protected:\r
42   QList<char>* pattern; // the pattern modified by this\r
43   ConnectedInterface* associatedIface;\r
44 };\r
45 \r
46 #endif // __ABSTRACTINPUTMODIFIER_H__\r