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

Private GIT Repository
pattern comput done
[blast.git] / ConnectedInterface.cpp
index fbfa7851bff89f264b2fa24eb68bfd9de5da5ff1..c053aadb708f727f458c6199a7331ea1e3273258 100644 (file)
@@ -8,7 +8,7 @@ ConnectedInterface::ConnectedInterface(AbstractBlock* _owner) : AbstractInterfac
   connectedFrom = NULL;\r
 }\r
 \r
   connectedFrom = NULL;\r
 }\r
 \r
-ConnectedInterface::ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose, int _level) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose, _level) {\r
+ConnectedInterface::ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose) {\r
   connectedFrom = NULL;\r
 }\r
 \r
   connectedFrom = NULL;\r
 }\r
 \r
@@ -25,16 +25,32 @@ void ConnectedInterface::clearConnectedTo() {
   connectedTo.clear();\r
 }\r
 \r
   connectedTo.clear();\r
 }\r
 \r
-bool ConnectedInterface::connectTo(ConnectedInterface *iface) {\r
-\r
-  if (canConnectTo(iface)) {\r
-    connectedTo.append(iface);\r
-    return true;\r
+void ConnectedInterface::connectTo(ConnectedInterface *iface) {\r
+  \r
+  connectedTo.append(iface);\r
+  iface->connectedFrom = this;\r
+  ConnectedInterface* asso1 = (ConnectedInterface*)associatedIface;\r
+  ConnectedInterface* asso2 = (ConnectedInterface*)(iface->associatedIface);\r
+  if ((asso1 != NULL) && (asso2 != NULL)) {\r
+    asso1->connectedTo.append(asso2);\r
+    asso2->connectedFrom = asso1;\r
   }\r
   }\r
+}\r
 \r
 \r
-  return false;\r
+void ConnectedInterface::disconnectTo(ConnectedInterface *iface) {\r
+  \r
+  connectedTo.removeAll(iface);\r
+  iface->connectedFrom = NULL;\r
+  ConnectedInterface* asso1 = (ConnectedInterface*)associatedIface;\r
+  ConnectedInterface* asso2 = (ConnectedInterface*)(iface->associatedIface);\r
+  if ((asso1 != NULL) && (asso2 != NULL)) {\r
+    asso1->connectedTo.removeAll(asso2);\r
+    asso2->connectedFrom = NULL;\r
+  }\r
 }\r
 \r
 }\r
 \r
+\r
+/*\r
 bool ConnectedInterface::connectFrom(ConnectedInterface *iface) {\r
   if (canConnectFrom(iface)) {\r
     connectedFrom = iface;\r
 bool ConnectedInterface::connectFrom(ConnectedInterface *iface) {\r
   if (canConnectFrom(iface)) {\r
     connectedFrom = iface;\r
@@ -42,6 +58,7 @@ bool ConnectedInterface::connectFrom(ConnectedInterface *iface) {
   }\r
   return false;\r
 }\r
   }\r
   return false;\r
 }\r
+*/\r
 \r
 /* getConnectionToParentGroup() :\r
    if an interface among connectedTo is an interface of the parent group\r
 \r
 /* getConnectionToParentGroup() :\r
    if an interface among connectedTo is an interface of the parent group\r