Mercurial > hg > RemoteEditor > REPSessionManager
diff rep/handler/FirstConnector.java @ 387:6f356d160e58
IPv6 any address
author | one@firefly.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Mon, 10 Nov 2008 22:21:52 +0900 |
parents | 1fca50ce3508 |
children | 18cacd0b3ccf |
line wrap: on
line diff
--- a/rep/handler/FirstConnector.java Mon Nov 10 22:19:34 2008 +0900 +++ b/rep/handler/FirstConnector.java Mon Nov 10 22:21:52 2008 +0900 @@ -13,15 +13,19 @@ public class FirstConnector extends Forwarder { - public FirstConnector(SessionManager manager) { - super(manager); + + + public FirstConnector(SessionManager manager, + REPSocketChannel<REPCommand> channel) { + super(manager,channel); } - + public void cancel(REPSocketChannel<REPCommand> socketChannel) { manager.remove(socketChannel); } - public void handle(REPSelectionKey<REPCommand> key) throws IOException { + @Override + public void handle(REPCommand command, REPSelectionKey<REPCommand> key) throws IOException { /* * 接続要求は、EditorかSlave Editorで、 * join, put, sm_join @@ -29,8 +33,6 @@ * sm_join_ack */ REPNode fw; - REPSocketChannel<REPCommand> channel = key.channel1(); - REPCommand command = channel.read(); ServerMainLoop.logger.writeLog("FirstConnector: command = " + command); switch(command.cmd) { case SMCMD_JOIN: @@ -63,14 +65,14 @@ } case SMCMD_SM_JOIN: { - fw = new Dispatcher(manager); // FirstConnector? + fw = new Dispatcher(manager,channel); // FirstConnector? manager.addWaitingSessionManager(fw, command); break; } case SMCMD_SM_JOIN_ACK: manager.setSessionManagerID(command.sid); manager.afterConnect(); - fw = new Dispatcher(manager); + fw = new Dispatcher(manager,channel); manager.setParent(fw); break; default: throw new IOException();