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

Private GIT Repository
modifying pattern methods to throw exceptions
[blast.git] / ReferenceInterface.cpp
index 8aca1329f1cbcb29efa027868071753db643cf69..a0f50cad9cc22018db0cffa8555ac6eaf052a76d 100644 (file)
@@ -11,13 +11,19 @@ ReferenceInterface::ReferenceInterface(AbstractBlock* _owner,
                                        const QString& _width,
                                        int _direction,
                                        int _purpose,
-                                       int _level,
                                        int _multiplicity)
-throw (Exception) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose, _level) {
+throw (Exception) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose) {
 
   if (_owner->isReferenceBlock()) throw(Exception(BLOCK_INVALID_TYPE));
 
   multiplicity = _multiplicity;
+  
+  if (purpose == Control) {
+    // override some attributes with forced values
+    type = Boolean;
+    width = "1";
+    multiplicity = 1;
+  }  
   if (direction == InOut) {
     multiplicity = 1;
   }
@@ -43,20 +49,12 @@ int ReferenceInterface::translatePurpose(const QString& txt) {
   else if (txt == "reset") {
     return Reset;
   }
-  if (txt == "wb") {
+  else if (txt == "wb") {
     return Wishbone;
-  }
+  }  
   return Data;
 }
 
-int ReferenceInterface::translateLevel(const QString& txt) {
-
-  if (txt == "top") {
-    return Top;
-  }
-  return Basic;
-}
-
 int ReferenceInterface::translateMultiplicity(const QString& txt) {
   bool ok;
   int mult;