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

Private GIT Repository
changed connection process
[blast.git] / ConnectedInterface.cpp
index 69a484bf764016e681441871e66862caf6d8854d..c053aadb708f727f458c6199a7331ea1e3273258 100644 (file)
@@ -25,16 +25,32 @@ void ConnectedInterface::clearConnectedTo() {
   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
-  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
 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
 \r
 /* getConnectionToParentGroup() :\r
    if an interface among connectedTo is an interface of the parent group\r