diff src/main/java/jp/ac/u_ryukyu/treevnc/TreeManagement.java @ 462:b5459c7c8e4d

only one treeManager in a network interface
author kono
date Mon, 04 Jul 2016 20:19:31 +0900
parents ed15f0bd8dfa
children 5bef0f09f088
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeManagement.java	Mon Jul 04 18:41:14 2016 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeManagement.java	Mon Jul 04 20:19:31 2016 +0900
@@ -8,33 +8,32 @@
 
 public class TreeManagement {
 
+
+    private final int treeId;
     public LinkedList<TreeVNCNode> nodeList = new LinkedList<TreeVNCNode>();
     boolean runflag = false;
     private final int treebranch = 2;
     private boolean showTreeNode = false;
     private byte[] netmask;
     private byte[] netaddress;
+    //  node id
+    //      ttttnnnnnnnnnnnn
+    //      tttt          4bit tree number
+    //     nnnnnnnnnnnn  12bit node number
+    public final int MAX_TREE = 15;
+    public final int MAX_TREE_NODE = (1<<12)-1;
 
-    public TreeManagement(String hostName, int vncport, boolean showTree) {
+    public TreeManagement(String hostName, int vncport, boolean showTree, int id) {
+        treeId = id;
         TreeVNCNode me = new TreeVNCNode(hostName, vncport,"localhost");
         showTreeNode = showTree;
         me.setTreeNum(0);
         nodeList.add(me);
     }
 
-    //
-    //	private boolean checkAddress(String line) {
-    //		String test[] = line.split("\\.");
-    //		int a = Integer.parseInt(test[0]);
-    //		int b = Integer.parseInt(test[1]);
-    //		if ((192 == a && b == 168) || (172 == a && (b > 15 || b < 32))
-    //				|| 10 == a) {
-    //			return true;
-    //		} else {
-    //			return false;
-    //		}
-    //	}
-
+    public int getTreeId() {
+        return treeId;
+    }
 
     /**
      * a parent is lost, remove from the list and move last one into here
@@ -162,7 +161,7 @@
 
     public void connectTo(TreeVNCNode newparent, TreeVNCNode n) throws IOException {
         TreeVncProtocol vc1 = new TreeVncProtocol(n.getHostname(),n.getPort());
-            short nodeId = (short) n.getTreeNum();
+            short nodeId = (short) ( n.getTreeNum() + ( treeId << 12 ));
             vc1.connectTo(newparent.getHostname(), newparent.getPort(), isLeader(n), nodeId);
     }