Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove PSG from SimGrid git
[simgrid.git] / contrib / psg / src / example / chord / CreateNw.java
diff --git a/contrib/psg/src/example/chord/CreateNw.java b/contrib/psg/src/example/chord/CreateNw.java
deleted file mode 100644 (file)
index 9268653..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/**\r
- * \r
- */\r
-package example.chord;\r
-\r
-import peersim.core.*;\r
-import peersim.config.Configuration;\r
-import java.math.*;\r
-\r
-/**\r
- * @author Andrea\r
- * \r
- */\r
-public class CreateNw implements Control {\r
-\r
-       private int pid = 0;\r
-\r
-       private static final String PAR_IDLENGTH = "idLength";\r
-\r
-       private static final String PAR_PROT = "protocol";\r
-\r
-       private static final String PAR_SUCCSIZE = "succListSize";\r
-\r
-       int idLength = 0;\r
-\r
-       int successorLsize = 0;\r
-\r
-       int fingSize = 0;\r
-       //campo x debug\r
-       boolean verbose = false;\r
-\r
-       /**\r
-        * \r
-        */\r
-       public CreateNw(String prefix) {\r
-               pid = Configuration.getPid(prefix + "." + PAR_PROT);\r
-               idLength = Configuration.getInt(prefix + "." + PAR_IDLENGTH); \r
-               successorLsize = Configuration.getInt(prefix + "." + PAR_SUCCSIZE); \r
-       }\r
-\r
-       /*\r
-        * (non-Javadoc)\r
-        * \r
-        * @see peersim.core.Control#execute()\r
-        */\r
-\r
-       public boolean execute() {\r
-               for (int i = 0; i < Network.size(); i++) {\r
-                       Node node = (Node) Network.get(i);\r
-                       ChordProtocol cp = (ChordProtocol) node.getProtocol(pid);\r
-                       cp.m = idLength;\r
-                       cp.succLSize = successorLsize;\r
-                       cp.varSuccList = 0;\r
-                       cp.chordId = new BigInteger(idLength, CommonState.r);\r
-                       cp.fingerTable = new Node[idLength];\r
-                       cp.successorList = new Node[successorLsize];\r
-               }\r
-               NodeComparator nc = new NodeComparator(pid);\r
-               Network.sort(nc);\r
-               createFingerTable();\r
-               return false;\r
-       }\r
-\r
-       public Node findId(BigInteger id, int nodeOne, int nodeTwo) {\r
-               if (nodeOne >= (nodeTwo - 1)) \r
-                       return Network.get(nodeOne);\r
-               int middle = (nodeOne + nodeTwo) / 2;\r
-               if (((middle) >= Network.size() - 1))\r
-                       System.out.print("ERROR: Middle is bigger than Network.size");\r
-               if (((middle) <= 0))\r
-                       return Network.get(0);\r
-               try {\r
-                       BigInteger newId = ((ChordProtocol) ((Node) Network.get(middle))\r
-                                       .getProtocol(pid)).chordId;\r
-                       BigInteger lowId;\r
-                       if (middle > 0)\r
-                               lowId = ((ChordProtocol) ((Node) Network.get(middle - 1))\r
-                                               .getProtocol(pid)).chordId;\r
-                       else\r
-                               lowId = newId;\r
-                       BigInteger highId = ((ChordProtocol) ((Node) Network\r
-                                       .get(middle + 1)).getProtocol(pid)).chordId;\r
-                       if (id.compareTo(newId) == 0\r
-                                       || ((id.compareTo(newId) == 1) && (id.compareTo(highId) == -1))) {\r
-                               return Network.get(middle);\r
-                       }\r
-                       if ((id.compareTo(newId) == -1) && (id.compareTo(lowId) == 1)) {\r
-                               if (middle > 0)\r
-                                       return Network.get(middle - 1);\r
-                               else\r
-                                       return Network.get(0);\r
-                       }\r
-                       if (id.compareTo(newId) == -1) {\r
-                               return findId(id, nodeOne, middle);\r
-                       } else if (id.compareTo(newId) == 1) {\r
-                               return findId(id, middle, nodeTwo);\r
-                       }\r
-                       return null;\r
-               } catch (Exception e) {\r
-                       e.printStackTrace();\r
-                       return null;\r
-               }\r
-       }\r
-\r
-       public void createFingerTable() {\r
-               BigInteger idFirst = ((ChordProtocol) Network.get(0).getProtocol(pid)).chordId;\r
-               BigInteger idLast = ((ChordProtocol) Network.get(Network.size() - 1)\r
-                               .getProtocol(pid)).chordId;\r
-               for (int i = 0; i < Network.size(); i++) {\r
-                       Node node = (Node) Network.get(i);\r
-                       ChordProtocol cp = (ChordProtocol) node.getProtocol(pid);\r
-                       for (int a = 0; a < successorLsize; a++) {\r
-                               if (a + i < (Network.size() - 1))\r
-                                       cp.successorList[a] = Network.get(a + i + 1);\r
-                               else\r
-                                       cp.successorList[a] = Network.get(a);\r
-                       }\r
-                       if (i > 0)\r
-                               cp.predecessor = (Node) Network.get(i - 1);\r
-                       else\r
-                               cp.predecessor = (Node) Network.get(Network.size() - 1);\r
-                       int j = 0;\r
-                       for (j = 0; j < idLength; j++) {\r
-                               BigInteger base;\r
-                               if (j == 0)\r
-                                       base = BigInteger.ONE;\r
-                               else {\r
-                                       base = BigInteger.valueOf(2);\r
-                                       for (int exp = 1; exp < j; exp++) {\r
-                                               base = base.multiply(BigInteger.valueOf(2));\r
-                                       }\r
-                               }\r
-                               BigInteger pot = cp.chordId.add(base);\r
-                               if (pot.compareTo(idLast) == 1) {\r
-                                       pot = (pot.mod(idLast));\r
-                                       if (pot.compareTo(cp.chordId) != -1) {\r
-                                               break;\r
-                                       }\r
-                                       if (pot.compareTo(idFirst) == -1) {\r
-                                               cp.fingerTable[j] = Network.get(Network.size() - 1);\r
-                                               continue;\r
-                                       }\r
-                               }\r
-                               cp.fingerTable[j] = findId(pot, 0, Network.size() - 1);\r
-                       }\r
-               }\r
-       }\r
-}\r