changeset 334:dff2f92ae3ff

change lost left/right child to lost child.
author oc
date Thu, 05 Feb 2015 17:57:47 +0900
parents 1be15ac758b4
children 49e25659ad05
files src/main/java/com/glavsoft/rfb/protocol/ProtocolContext.java src/main/java/jp/ac/u_ryukyu/treevnc/TreeManagement.java src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncCommand.java src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncProtocol.java src/viewer_swing/java/com/glavsoft/viewer/Viewer.java
diffstat 6 files changed, 25 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/ProtocolContext.java	Wed Feb 04 17:57:22 2015 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/ProtocolContext.java	Thu Feb 05 17:57:47 2015 +0900
@@ -98,8 +98,7 @@
         NOT_FOUND_PARENT  (226),
         NEW_NODE  (227),
         QUIT_LOOP  (228),
-        LOST_LEFT_CHILD  (229),
-        LOST_RIGHT_CHILD  (230);
+        LOST_CHILD(229);
 
         public final int cmd;
         TreeCommand(int cmd) {
@@ -117,9 +116,8 @@
                 case 226: return NOT_FOUND_PARENT ;
                 case 227: return NEW_NODE ;
                 case 228: return QUIT_LOOP;
-                case 229: return LOST_LEFT_CHILD;
-                case 230: default:
-                    return LOST_RIGHT_CHILD;
+                case 229: default:
+                    return LOST_CHILD;
             }
         }
     }
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeManagement.java	Wed Feb 04 17:57:22 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeManagement.java	Thu Feb 05 17:57:47 2015 +0900
@@ -99,7 +99,20 @@
         System.out.println("fixLostChild");
         TreeVNCNode lostChildNode = lookup(nodeList, hostname, port);
         if (lostChildNode == null) return;
-        TreeVNCNode deadChild = getChildNode(lostChildNode, clientId);
+        int lostChildNodeNum;
+        // if isTreeManager
+        if (lostChildNode.getTreeNum() == 0) {
+            lostChildNodeNum = clientId + 1;
+        } else {
+            lostChildNodeNum = (lostChildNode.getTreeNum() * treebranch) + clientId + 1;
+        }
+        TreeVNCNode deadChild;
+        try {
+            deadChild = nodeList.get(lostChildNodeNum);
+        } catch (IndexOutOfBoundsException e) {
+            // this node became new node instead of deathChild.
+            deadChild = null;
+        }
         if (deadChild!=null) {
             moveLastNodeToLostNodePosition(deadChild.getTreeNum());
             lostNodeConnection(deadChild);
@@ -164,7 +177,7 @@
             checkParameter(parent.getTreeNum(), nodeList.size(), isLeader(node));
             connectTo(parent, node);
         } else {
-            // connect to me
+            // connect to root
             TreeVNCNode me = nodeList.getFirst();
             me.setHostName(localhostname);
             connectTo(me, node);
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java	Wed Feb 04 17:57:22 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java	Thu Feb 05 17:57:47 2015 +0900
@@ -21,7 +21,6 @@
 import com.glavsoft.rfb.protocol.ProtocolContext;
 import com.glavsoft.transport.Reader;
 import com.glavsoft.transport.Writer;
-import com.glavsoft.viewer.Viewer;
 import com.glavsoft.viewer.ViewerInterface;
 import com.glavsoft.viewer.swing.ConnectionParams;
 
@@ -177,11 +176,7 @@
 
                                 TreeVncProtocol echo = new TreeVncProtocol(rootHostName, rootHostPort);
                                 clients = myId;
-                                if (myId == 0) {
-                                    echo.lostLeftChild(myHostName, myHostPort);
-                                } else if (myId == 1) {
-                                    echo.lostRightChild(myHostName, myHostPort);
-                                }
+                                echo.lostChild(myHostName, myHostPort, myId);
                                 break;
                             }
                         }
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncCommand.java	Wed Feb 04 17:57:22 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncCommand.java	Thu Feb 05 17:57:47 2015 +0900
@@ -70,11 +70,8 @@
                 break;
             case QUIT_LOOP :
                 break;
-            case LOST_LEFT_CHILD :
-                handleLostChild(port, hostname, myHostName, 0);
-                break;
-            case LOST_RIGHT_CHILD :
-                handleLostChild(port, hostname, myHostName, 1);
+            case LOST_CHILD :
+                handleLostChild(port, hostname, myHostName, this.value);
                 break;
             default:
                 System.out.println("unknown treeVNC command" + command);
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncProtocol.java	Wed Feb 04 17:57:22 2015 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncProtocol.java	Thu Feb 05 17:57:47 2015 +0900
@@ -69,21 +69,12 @@
         }
     }
 
-    public void lostLeftChild(String hostname, int port) {
+    public void lostChild(String myHostName, int myHostPort, int myId) {
         try {
-            sendWithHostAndPort(TreeCommand.LOST_LEFT_CHILD, hostname, port, (short) 0);
+            sendWithHostAndPort(TreeCommand.LOST_CHILD, myHostName, myHostPort, (short) myId);
         } catch (IOException e) {
             e.printStackTrace();
-            System.out.println("cannot send lostLeftChild");
-        }
-    }
-
-    public void lostRightChild(String hostname, int port) {
-        try {
-            sendWithHostAndPort(TreeCommand.LOST_RIGHT_CHILD, hostname, port, (short) 0);
-        } catch (IOException e) {
-            e.printStackTrace();
-            System.out.println("cannot send lostRightChild");
+            System.out.println("cannot send lostChild");
         }
     }
 
--- a/src/viewer_swing/java/com/glavsoft/viewer/Viewer.java	Wed Feb 04 17:57:22 2015 +0900
+++ b/src/viewer_swing/java/com/glavsoft/viewer/Viewer.java	Thu Feb 05 17:57:47 2015 +0900
@@ -319,7 +319,7 @@
      * @throws IOException
      */
     @Override
-    public void connectToParenet(int port, String hostname)  throws IOException {
+    public void connectToParenet(int port, String hostname) throws IOException {
         setTerminationType(false);
         closeApp();
         connectionParams.setConnectionParam(hostname, port);