# HG changeset patch # User one # Date 1347423407 -32400 # Node ID 1b81deb0abb3201d124589f24416b04ef349792e # Parent f70008073a03484d8f793ba9c92f9e0938fe990b write a little part reconnection. diff -r f70008073a03 -r 1b81deb0abb3 build.gradle --- a/build.gradle Tue Sep 04 19:02:04 2012 +0900 +++ b/build.gradle Wed Sep 12 13:16:47 2012 +0900 @@ -33,7 +33,7 @@ baseName = project.baseName version = null manifest { - attributes 'Main-Class': 'com.glavsoft.viewer.Viewer' + attributes 'Main-Class': 'com.glavsoft.viewer.TreeViewer' attributes 'Implementation-Version': "${project.version}" } } diff -r f70008073a03 -r 1b81deb0abb3 src/main/java/com/glavsoft/rfb/protocol/Protocol.java --- a/src/main/java/com/glavsoft/rfb/protocol/Protocol.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/Protocol.java Wed Sep 12 13:16:47 2012 +0900 @@ -324,8 +324,10 @@ receiverThread.start(); } + public void startTreeClientHandling(IRfbSessionListener rfbSessionListener, - IRepaintController repaintController, ClipboardController clipboardController, MyRfbProto rfb) { + IRepaintController repaintController, + ClipboardController clipboardController, MyRfbProto rfb) { this.rfbSessionListener = rfbSessionListener; this.repaintController = repaintController; // if (settings.getBitsPerPixel() == 0) { diff -r f70008073a03 -r 1b81deb0abb3 src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java --- a/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/ReceiverTask.java Wed Sep 12 13:16:47 2012 +0900 @@ -44,6 +44,10 @@ import java.io.StringWriter; import java.util.logging.Logger; +import jp.ac.u_ryukyu.treevnc.MyRfbProto; +import jp.ac.u_ryukyu.treevnc.client.EchoClient; +import jp.ac.u_ryukyu.treevnc.client.MyRfbProtoClient; + public class ReceiverTask implements Runnable { private static final byte FRAMEBUFFER_UPDATE = 0; private static final byte SET_COLOR_MAP_ENTRIES = 1; @@ -62,6 +66,16 @@ protected final ProtocolContext context; protected PixelFormat pixelFormat; protected boolean needSendPixelFormat; + private MyRfbProto rfb; + + public ReceiverTask(Reader reader, + IRepaintController repaintController, ClipboardController clipboardController, + DecodersContainer decoders, ProtocolContext context, + MyRfbProto _rfb) { + this(reader,repaintController,clipboardController,decoders,context); + rfb = _rfb; + } + public ReceiverTask(Reader reader, IRepaintController repaintController, ClipboardController clipboardController, @@ -107,7 +121,12 @@ } } catch (TransportException e) { logger.severe("Close session: " + e.getMessage()); - if (isRunning) { + if(rfb instanceof MyRfbProtoClient) { + System.out.println("task stop"); + EchoClient echo = rfb.getEcho(); + echo.openport(); + echo.lostHost(); + } else if (isRunning) { context.cleanUpSession("Connection closed."); } stopTask(); diff -r f70008073a03 -r 1b81deb0abb3 src/main/java/com/glavsoft/rfb/protocol/TreeTask.java --- a/src/main/java/com/glavsoft/rfb/protocol/TreeTask.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/main/java/com/glavsoft/rfb/protocol/TreeTask.java Wed Sep 12 13:16:47 2012 +0900 @@ -16,7 +16,7 @@ public TreeTask(Reader reader, IRepaintController repaintController, ClipboardController clipboardController, DecodersContainer decoders, ProtocolContext context, MyRfbProto rfb) { - super(reader, repaintController, clipboardController, decoders, context); + super(reader, repaintController, clipboardController, decoders, context, rfb); //super(reader, new NullRepaintController(), clipboardController, decoders,context, true); Decoder decoder = new ZRLEESender(rfb); decoders.setDecoderByType(EncodingType.ZLIB, decoder); diff -r f70008073a03 -r 1b81deb0abb3 src/main/java/com/glavsoft/transport/Reader.java --- a/src/main/java/com/glavsoft/transport/Reader.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/main/java/com/glavsoft/transport/Reader.java Wed Sep 12 13:16:47 2012 +0900 @@ -47,7 +47,6 @@ } catch (IOException e) { throw new TransportException("Cannot read byte", e); } - } public int readUInt8() throws TransportException { diff -r f70008073a03 -r 1b81deb0abb3 src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/MyRfbProto.java Wed Sep 12 13:16:47 2012 +0900 @@ -6,6 +6,7 @@ import java.util.LinkedList; import java.util.concurrent.atomic.AtomicInteger; +import jp.ac.u_ryukyu.treevnc.client.EchoClient; import jp.ac.u_ryukyu.treevnc.server.RequestScreenThread; import com.glavsoft.exceptions.TransportException; @@ -24,6 +25,7 @@ protected MulticastQueue> multicastqueue = new MulticastQueue>(); private RequestScreenThread rThread; private boolean proxyFlag = true; + private EchoClient echo; public MyRfbProto() { rThread = new RequestScreenThread(this); @@ -312,4 +314,13 @@ public void notProxy() { proxyFlag = false; } + + + public void setEcho(EchoClient _echo) { + echo = _echo; + } + + public EchoClient getEcho() { + return echo; + } } diff -r f70008073a03 -r 1b81deb0abb3 src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/client/EchoClient.java Wed Sep 12 13:16:47 2012 +0900 @@ -14,7 +14,7 @@ private boolean runflag = false; private WaitReply waitReply; private Socket clientSocket = null; - private InterfaceForViewer client; + private MyVncClient client; private int echoPort = 9999; public String parentAddress; public String parentNum; @@ -36,7 +36,7 @@ } public EchoClient(String name, MyVncClient client) { - this.client = (InterfaceForViewer) client; + this.client = client; this.name = name; } @@ -46,13 +46,13 @@ } public EchoClient(String name, MyVncClient client, int echoPort) { - this.client = (InterfaceForViewer) client; + this.client = client; this.name = name; this.echoPort = echoPort; } public EchoClient(EchoClient echo, MyVncClient client) { - this.client = (InterfaceForViewer) client; + this.client = client; this.name = echo.name; leaderFlag = echo.leaderFlag; parentNum = echo.parentNum; @@ -111,7 +111,7 @@ /** * Call at lost host */ - boolean lostHost() { + public boolean lostHost() { if (echoSocket != null && os != null && is != null) { try { if (runflag) { diff -r f70008073a03 -r 1b81deb0abb3 src/main/java/jp/ac/u_ryukyu/treevnc/client/MyVncClient.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/client/MyVncClient.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/client/MyVncClient.java Wed Sep 12 13:16:47 2012 +0900 @@ -2,6 +2,7 @@ import java.awt.event.WindowEvent; import java.awt.event.WindowListener; +import java.net.Socket; import java.util.logging.Logger; import com.glavsoft.rfb.IChangeSettingsListener; @@ -117,4 +118,14 @@ @Override public void windowOpened(WindowEvent e) { /*nop*/ } + public void close() { + // TODO Auto-generated method stub + + } + + public void setClientSocket(Socket echoSocket) { + // TODO Auto-generated method stub + + } + } diff -r f70008073a03 -r 1b81deb0abb3 src/main/java/jp/ac/u_ryukyu/treevnc/client/WaitReply.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/client/WaitReply.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/client/WaitReply.java Wed Sep 12 13:16:47 2012 +0900 @@ -4,16 +4,14 @@ import java.net.ServerSocket; import java.net.Socket; -import jp.ac.u_ryukyu.treevnc.*; - public class WaitReply extends Thread { - InterfaceForViewer client; + MyVncClient client; boolean passflag; - public WaitReply(String treenum, InterfaceForViewer client) { + public WaitReply(String treenum, MyVncClient client) { this.client = client; } diff -r f70008073a03 -r 1b81deb0abb3 src/main/java/jp/ac/u_ryukyu/treevnc/server/MyRfbProtoProxy.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/server/MyRfbProtoProxy.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/server/MyRfbProtoProxy.java Wed Sep 12 13:16:47 2012 +0900 @@ -8,7 +8,6 @@ import java.net.ServerSocket; import java.net.Socket; import java.nio.ByteBuffer; -import java.util.Iterator; import java.util.LinkedList; import com.glavsoft.exceptions.TransportException; import com.glavsoft.rfb.encoding.EncodingType; @@ -405,15 +404,6 @@ } */ - private LinkedList clone(LinkedList in) { - LinkedList copy = new LinkedList(); - for (ByteBuffer b : in) { - ByteBuffer c = b.duplicate(); - copy.add(c); - } - return copy; - } - /* public int equalByteBuffers(LinkedList in, LinkedList out2) { @@ -436,43 +426,6 @@ } */ - private Iterable byteBufferIterator(final LinkedList in) { - return new Iterable() { - public Iterator iterator() { - return new Iterator() { - int bytes = 0; - int buffers = 0; - - public boolean hasNext() { - for (;;) { - if (buffers >= in.size()) - return false; - ByteBuffer b = in.get(buffers); - if (!(bytes < b.remaining())) { - buffers++; - bytes = 0; - } else - return true; - } - } - - public Byte next() { - ByteBuffer bf = in.get(buffers); - byte b = bf.get(bytes++); - if (bf.remaining() <= bytes) { - buffers++; - bytes = 0; - } - // System.out.print(b); - return b; - } - - public void remove() { - } - }; - } - }; - } void sendRfbVersion(Writer writer) throws IOException, TransportException { // os.write(versionMsg_3_8.getBytes()); diff -r f70008073a03 -r 1b81deb0abb3 src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java --- a/src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java Wed Sep 12 13:16:47 2012 +0900 @@ -118,7 +118,7 @@ while (tryAgain) { // connectionParams.hostName = arguments[0]; // workingSocket = connectionManager.connectToTreeHost(connectionParams, settings); - workingSocket = connectionManager.connectToHost(connectionParams, settings); + workingSocket = connectionManager.connectToHost(connectionParams, settings, rfb); if (null == workingSocket) { closeApp(); break; diff -r f70008073a03 -r 1b81deb0abb3 src/viewer_swing/java/com/glavsoft/viewer/ConnectionManager.java --- a/src/viewer_swing/java/com/glavsoft/viewer/ConnectionManager.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/viewer_swing/java/com/glavsoft/viewer/ConnectionManager.java Wed Sep 12 13:16:47 2012 +0900 @@ -38,6 +38,8 @@ import java.net.Socket; import java.net.UnknownHostException; +import jp.ac.u_ryukyu.treevnc.MyRfbProto; + public class ConnectionManager implements Serializable { /** @@ -117,7 +119,7 @@ } */ - public Socket connectToHost(final ParametersHandler.ConnectionParams connectionParams, ProtocolSettings settings) { + public Socket connectToHost(final ParametersHandler.ConnectionParams connectionParams, ProtocolSettings settings, MyRfbProto rfb) { Socket socket = null; ConnectionDialog connectionDialog = null; boolean wasError = false; @@ -171,4 +173,5 @@ public void setContainerFrame(JFrame containerFrame) { this.containerFrame = containerFrame; } + } \ No newline at end of file diff -r f70008073a03 -r 1b81deb0abb3 src/viewer_swing/java/com/glavsoft/viewer/TreeConnectionManager.java --- a/src/viewer_swing/java/com/glavsoft/viewer/TreeConnectionManager.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/viewer_swing/java/com/glavsoft/viewer/TreeConnectionManager.java Wed Sep 12 13:16:47 2012 +0900 @@ -5,6 +5,7 @@ import java.net.Socket; import java.net.UnknownHostException; +import jp.ac.u_ryukyu.treevnc.MyRfbProto; import jp.ac.u_ryukyu.treevnc.client.GetDataClient; import jp.ac.u_ryukyu.treevnc.client.GetHostClient; import jp.ac.u_ryukyu.treevnc.client.EchoClient; @@ -25,7 +26,8 @@ } @Override - public Socket connectToHost(final ParametersHandler.ConnectionParams connectionParams, ProtocolSettings settings) { + public Socket connectToHost(final ParametersHandler.ConnectionParams connectionParams, + ProtocolSettings settings, MyRfbProto rfb) { Socket socket = null; GetHostClient bCast = new GetHostClient("who"); bCast.getHost(); @@ -40,6 +42,7 @@ } else { // getBcast.ipRegister(); EchoClient echo = new EchoClient(getBcast.textAddress(),9999); + rfb.setEcho(echo); echo.getParentName(); connectionParams.hostName = echo.parentAddress; connectionParams.portNumber = Integer.parseInt(getBcast.textPort()); // I should get port number diff -r f70008073a03 -r 1b81deb0abb3 src/viewer_swing/java/com/glavsoft/viewer/TreeViewer.java --- a/src/viewer_swing/java/com/glavsoft/viewer/TreeViewer.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/viewer_swing/java/com/glavsoft/viewer/TreeViewer.java Wed Sep 12 13:16:47 2012 +0900 @@ -41,9 +41,9 @@ treeProxy = true; } else { i++; - System.out.println("(default) TreeVNCClient" - + "-p TreeVNCProxy" - + "-v VNCViewer" + System.out.println("(default) TreeVNCClient\n" + + "-p TreeVNCProxy\n" + + "-v VNCViewer\n" + "-r TreeVNCProxy for RemoteHost. you should input parameter host and port"); } } diff -r f70008073a03 -r 1b81deb0abb3 src/viewer_swing/java/com/glavsoft/viewer/Viewer.java --- a/src/viewer_swing/java/com/glavsoft/viewer/Viewer.java Tue Sep 04 19:02:04 2012 +0900 +++ b/src/viewer_swing/java/com/glavsoft/viewer/Viewer.java Wed Sep 12 13:16:47 2012 +0900 @@ -289,7 +289,7 @@ tryAgain = true; while (tryAgain) { - workingSocket = connectionManager.connectToHost(connectionParams, settings); + workingSocket = connectionManager.connectToHost(connectionParams, settings, rfb); if (null == workingSocket) { closeApp(); break;