# HG changeset patch # User oc # Date 1423126667 -32400 # Node ID dff2f92ae3ff71a7acf05f84d46faead6a8de365 # Parent 1be15ac758b49d4d79ef7485e71b52dccc8d4b72 change lost left/right child to lost child. diff -r 1be15ac758b4 -r dff2f92ae3ff src/main/java/com/glavsoft/rfb/protocol/ProtocolContext.java --- 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; } } } diff -r 1be15ac758b4 -r dff2f92ae3ff src/main/java/jp/ac/u_ryukyu/treevnc/TreeManagement.java --- 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); diff -r 1be15ac758b4 -r dff2f92ae3ff src/main/java/jp/ac/u_ryukyu/treevnc/TreeRFBProto.java --- 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; } } diff -r 1be15ac758b4 -r dff2f92ae3ff src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncCommand.java --- 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); diff -r 1be15ac758b4 -r dff2f92ae3ff src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncProtocol.java --- 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"); } } diff -r 1be15ac758b4 -r dff2f92ae3ff src/viewer_swing/java/com/glavsoft/viewer/Viewer.java --- 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);