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

Private GIT Repository
nearly finished GroupBlock VHDL gen
[blast.git] / BlockParameter.cpp
1 #include "BlockParameter.h"\r
2 \r
3 BlockParameter::BlockParameter() {\r
4   owner = NULL;\r
5   name = "";  \r
6   type = BlockParameter::String;\r
7   defaultValue = QVariant();\r
8 }\r
9 \r
10 BlockParameter::BlockParameter(AbstractBlock* _owner, const QString &_name, const QString &_type, const QString &_value) {\r
11   owner = _owner;\r
12   name =_name;  \r
13   type = typeFromString(_type);\r
14   defaultValue = QVariant(_value);\r
15 }\r
16 \r
17 BlockParameter::~BlockParameter(){\r
18 \r
19 }\r
20 \r
21 QVariant BlockParameter::getValue() {\r
22   return defaultValue;\r
23 }\r
24 \r
25 bool BlockParameter::getBooleanValue(bool* ok) {\r
26   if (type == Boolean) {\r
27     *ok = true;\r
28     return getValue().toBool();\r
29   }\r
30   *ok = false;\r
31   return false;\r
32 }\r
33 \r
34 int BlockParameter::getIntValue(bool* ok) {\r
35   if ((type == Natural) || (type == Positive) || (type == Integer)) {\r
36     *ok = true;\r
37     return getValue().toInt();\r
38   }\r
39   *ok = false;\r
40   return 0;\r
41 }\r
42 \r
43 double BlockParameter::getDoubleValue(bool* ok) {\r
44   if ((type == Real) || (type == Natural) || (type == Positive) || (type == Integer)) {\r
45     *ok = true;    \r
46     return getValue().toDouble();\r
47   }\r
48   *ok = false;\r
49   return 0.0;\r
50 }\r
51 \r
52 QString BlockParameter::getStringValue() {\r
53   return getValue().toString();\r
54 }\r
55 \r
56 bool BlockParameter::isUserParameter() {\r
57   return false;\r
58 \r
59 }\r
60 \r
61 bool BlockParameter::isGenericParameter() {\r
62   return false;\r
63 }\r
64 \r
65 bool BlockParameter::isWishboneParameter() {\r
66   return false;\r
67 }\r
68 \r
69 bool BlockParameter::isPortParameter() {\r
70   return false;\r
71 }\r
72 \r
73 void BlockParameter::setValue(const QString& _value) {\r
74   defaultValue = QVariant(_value);\r
75 }\r
76 \r
77 bool BlockParameter::isValueSet() {\r
78   if (defaultValue.isNull()) return false;\r
79   return true;\r
80 }\r
81                       \r
82 QString BlockParameter::toVHDL(int context, int flags) {\r
83 \r
84   QString ret="";  \r
85   return ret;\r
86 }\r
87 \r
88 QString BlockParameter::getTypeString() {\r
89   if (type == BlockParameter::Bit) {\r
90     return "bit";\r
91   }\r
92   else if (type == BlockParameter::BitVector) {\r
93     return "bit_vector";\r
94   }\r
95   else if (type == BlockParameter::Boolean) {\r
96     return "boolean";\r
97   }\r
98   else if (type == BlockParameter::Integer) {\r
99     return "integer";\r
100   }\r
101   else if (type == BlockParameter::Natural) {\r
102     return "natural";\r
103   }\r
104   else if (type == BlockParameter::Positive) {\r
105     return "positive";\r
106   }\r
107   else if (type == BlockParameter::Real) {\r
108     return "real";\r
109   }\r
110   else if (type == BlockParameter::Character) {\r
111     return "character";\r
112   }\r
113   else if (type == BlockParameter::String) {\r
114     return "string";\r
115   }\r
116   else if (type == BlockParameter::Time) {\r
117     return "time";\r
118   }\r
119   return "undefined";\r
120 }\r
121 \r
122 int BlockParameter::typeFromString(const QString &_type) {\r
123   int ret = BlockParameter::Expression;\r
124 \r
125   if (_type == "string") {\r
126     ret = BlockParameter::String;\r
127   }\r
128   else if (_type == "expression") {\r
129     ret = BlockParameter::Expression;\r
130   }\r
131   else if (_type == "boolean") {\r
132     ret = BlockParameter::Boolean;\r
133   }\r
134   else if (_type == "integer") {\r
135     ret = BlockParameter::Integer;\r
136   }\r
137   else if (_type == "natural") {\r
138     ret = BlockParameter::Natural;\r
139   }\r
140   else if (_type == "positive") {\r
141     ret = BlockParameter::Positive;\r
142   }\r
143   else if (_type == "real") {\r
144     ret = BlockParameter::Real;\r
145   }\r
146   else if (_type == "time") {\r
147     ret = BlockParameter::Time;\r
148   }\r
149   return ret;\r
150 }\r
151 \r
152 \r