changeset 215:1badb2ce838f

add poll timeout root-command-loop, client don"t send framebufferupdate.
author oc
date Thu, 03 Jul 2014 19:23:39 +0900
parents e13912948369
children 7016b70b996c
files Todo.txt src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java src/main/java/jp/ac/u_ryukyu/treevnc/TreeRootFinderListener.java src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncCommand.java src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncCommandChannelListener.java
diffstat 5 files changed, 45 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/Todo.txt	Thu Jul 03 18:08:04 2014 +0900
+++ b/Todo.txt	Thu Jul 03 19:23:39 2014 +0900
@@ -1,3 +1,36 @@
+Thu Jul  3 18:09:37 JST 2014
+
+    interface毎にtreemanagerをつくるので十分。
+    subTreeを接続するときにはtreeのnodeにroot modeで直接つなぎにいく。
+    これで自動的にlocalのroot managerになる。
+    元のtreeとは干渉しない。
+    
+    sub treeの画面に切り替えることは現状できない。
+    切り替えるためには、sub tree側から元のtreeにRfbUpdateを持ち上げなければならない。
+    保留。
+    
+    同じnetworkにいるかどうかはwheretoconnectに変わったnetworkで接続しにきたときのみ対処する。
+    
+    duplicated rootは、subtreeを自分でつなげることにすれば必要ない。
+
+    殺しきれていないThreadがある。
+    
+    動かしたままサスペンドすると暴走する。
+    サスペンドしたマシンに
+
+    shareボタンを禁止するrootのオプションを、パネルから設定出来るように。
+
+    shareする画面の大きさをHDサイズに限定するのをdefaultにする。
+    オプションには定義してあるけれど正しく機能していない。
+
+    checkdelayの機能を。
+    木をさかのぼるプロトコル
+    上から投げて、下からdelayの時間をあげていく
+    途中のnodeですべてのtreeを待ってから
+
+    subtreeからのshareの問題。
+
+
 Wed Jul  2 18:55:48 JST 2014
     
     TreeRFBProtoのisTreeManagerはnetwork毎に変わる。
@@ -67,7 +100,7 @@
 
 Thu Jun 25 20:55:00 JST 2014
     
-    share screenした際に、rootのviewerが消えない。
+    share screenした際に、rootのviewerが消えない。 done!
     殺しきれていないThreadがある。
 
 
@@ -78,10 +111,10 @@
     
     サーバが切り替わった際、画面のサイズ等の情報を送信する。(INIT_DATA) Done
 
-    -dオプションでviewerを別にあげるのをやめる。
+    -dオプションでviewerを別にあげるのをやめる。done
     2つめのviewerの表示が滞るのをデバッグする
     shareボタンを禁止するrootのオプションを、パネルから設定出来るように。
-    shareしたTreeVNCのパネルをinvisibleにする。
+    shareしたTreeVNCのパネルをinvisibleにする。 done
     shareする画面の大きさをHDサイズに限定するのをdefaultにする。
     fullサイズを転送するオプションに。
     checkdelayの機能を。
--- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Thu Jul 03 18:08:04 2014 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java	Thu Jul 03 19:23:39 2014 +0900
@@ -262,6 +262,7 @@
 			} else
 				throw new CommonException("Unprocessed encoding: " + rect.toString());
 		}
+		if (!rfb.isTreeManager()) return; 
 		synchronized (this) {
 			if (needSendPixelFormat) {
 				needSendPixelFormat = false;
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRootFinderListener.java	Thu Jul 03 18:08:04 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeRootFinderListener.java	Thu Jul 03 19:23:39 2014 +0900
@@ -58,7 +58,7 @@
 				if(stopFlag) break;
 			}
 		} catch (Exception e) {
-			
+			System.out.println("tree-root-find-listener :" + e.getMessage());
 		}
 	}
 	
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncCommand.java	Thu Jul 03 18:08:04 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncCommand.java	Thu Jul 03 19:23:39 2014 +0900
@@ -18,7 +18,7 @@
     Reader is;
     private TreeCommand command ;
     private Socket connection;
-	private short value;
+    private short value;
     private String intf;
 
     public TreeVncCommand(TreeRFBProto rfb,String myHostName, TreeCommand command, int port, String hostname, String intf, short value) {
@@ -71,7 +71,7 @@
         }
     }
 
- /**
+    /**
      * new clients ask root to where to connect
      * tell him his parent
      * @param port
@@ -113,9 +113,9 @@
      * @param hostname
      */
     void handleFindRootReply(int port, String hostname,String myHostname) {
-    		rfb.addHostToSelectionPanel(port, hostname,myHostname);
+        rfb.addHostToSelectionPanel(port, hostname,myHostname);
     }
-    
+
     /**
      * client node lost parent connection,  send reconnection message.
      * if root is not here, clients die themselves.
@@ -126,9 +126,9 @@
     private void handleLostParent(int port, String hostname, String myHostName) {
         rfb.getTreeManager(intf).fixLostParent(hostname,port,myHostName);
     }
-    
+
     public TreeCommand getCommand () {
-    	return command;
+        return command;
     }
 
 
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncCommandChannelListener.java	Thu Jul 03 18:08:04 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/TreeVncCommandChannelListener.java	Thu Jul 03 19:23:39 2014 +0900
@@ -38,7 +38,7 @@
     			TreeVncCommand cmd = null;
     			do {
     				try {
-    					cmd = cmdQueue.poll(0, TimeUnit.MILLISECONDS);
+    					cmd = cmdQueue.poll(1000, TimeUnit.MILLISECONDS);
     				} catch (InterruptedException e) {
     					continue;
     				}