# HG changeset patch # User kono # Date 1224415852 -32400 # Node ID b25f832f875d884e4fe6b9900f4430b02bf69a57 # Parent fa041bae35f1911585f6611395661c44f068026a *** empty log message *** diff -r fa041bae35f1 -r b25f832f875d rep/FirstConnector.java --- a/rep/FirstConnector.java Sun Oct 19 19:24:38 2008 +0900 +++ b/rep/FirstConnector.java Sun Oct 19 20:30:52 2008 +0900 @@ -35,6 +35,9 @@ // 1対1でない場合は、multiplexerを挿めば良い Editor editor = manager.newEditor(channel); editor.setHost(manager.myHost); + command.eid = editor.eid; + command.sid = -1; + editor.setSID(-1); fw = editor; break; } @@ -44,8 +47,11 @@ // session manager IDが付いているので、global unique Editor editor = manager.newEditor(channel); Session session = manager.newSession(editor); + session.setName(command.string); + editor.setName(command.string); editor.setSID(session.getSID()); - editor.setHost(manager.myHost); + command.eid = editor.eid; + command.sid = editor.sid; fw = editor; break; } @@ -64,7 +70,7 @@ //myHost を設定。 //立ち上げ時にやるとlocalhostしか取れない if(manager.myHost == null) manager.setMyHostName(getLocalHostName()); - + fw.setHost(manager.myHost); fw.setMode(command.cmd); manager.registerChannel(channel, fw); manager.sessionManage(fw, command); diff -r fa041bae35f1 -r b25f832f875d rep/NullForwarder.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rep/NullForwarder.java Sun Oct 19 20:30:52 2008 +0900 @@ -0,0 +1,41 @@ +package rep; + +import java.io.IOException; + +import rep.channel.REPSelectionKey; +import rep.channel.REPSocketChannel; + +public class NullForwarder extends Forwarder { + + public NullForwarder(SessionManager manager) { + super(manager); + } + + public void send(REPCommand command) { + + } + public void cancel(REPSocketChannel socketChannel) { + + } + + public void handle(REPSelectionKey key) throws IOException { + + } + + public boolean manage(REPCommand command) { + return true; + } + + public boolean isEditor() { + return false; + } + + public boolean isForwarder() { + return false; + } + + public boolean isDirect() { + return false; + } + +} diff -r fa041bae35f1 -r b25f832f875d rep/Session.java --- a/rep/Session.java Sun Oct 19 19:24:38 2008 +0900 +++ b/rep/Session.java Sun Oct 19 20:30:52 2008 +0900 @@ -59,9 +59,6 @@ return values(); } - public String toString(){ - return sessionName; - } public int getSID() { return sessionID; } @@ -164,5 +161,16 @@ } } + @Override + public String toString() { + String s = super.toString(); + return s+" sid="+sessionID+" "+sessionName+" master="+ + ((masterEditor==null)?"null":masterEditor.toString()); + } + + + public void setName(String string) { + sessionName = string; + } } diff -r fa041bae35f1 -r b25f832f875d rep/SessionManager.java --- a/rep/SessionManager.java Sun Oct 19 19:24:38 2008 +0900 +++ b/rep/SessionManager.java Sun Oct 19 20:30:52 2008 +0900 @@ -387,6 +387,7 @@ public Session newSession(Forwarder master) { int sid= makeID(sessionList.newSessionID()); Session session = new Session(sid, master); + sessionList.put(sid, session); return session; } @@ -475,6 +476,7 @@ REPCommand ackCommand = new REPCommand(); ackCommand.setCMD(REP.SMCMD_JOIN_ACK); ackCommand.setEID(command.eid); + ackCommand.setSID(command.sid); ackCommand.string = command.string; smList.sendToSlaves(ackCommand); registEditor(forwarder,ackCommand); @@ -482,7 +484,7 @@ routingTable.add(forwarder,getSMID(command.eid),command.sid); smList.sendToMaster(command); } - + updateGUI(); } break; @@ -490,6 +492,7 @@ case SMCMD_JOIN_ACK: case SMCMD_PUT_ACK: registEditor(forwarder,command); + updateGUI(); break; case SMCMD_PUT: @@ -506,6 +509,7 @@ routingTable.add(forwarder,getSMID(command.eid),command.sid); smList.sendToMaster(command); } + updateGUI(); } break; @@ -631,7 +635,6 @@ editor.setSID(command.sid); if (!editorList.hasEid(command.eid)) { editorList.add(editor); - updateGUI(); } // we don't join ack to the direct linked editor. We // have to wait select command diff -r fa041bae35f1 -r b25f832f875d rep/SessionManagerList.java --- a/rep/SessionManagerList.java Sun Oct 19 19:24:38 2008 +0900 +++ b/rep/SessionManagerList.java Sun Oct 19 20:30:52 2008 +0900 @@ -10,7 +10,7 @@ private static final long serialVersionUID = 1L; private int mySMID=0; private int smid_root=0; - private Forwarder parent=null; + private Forwarder parent=new NullForwarder(null); private LinkedList waiting= new LinkedList(); @@ -29,7 +29,7 @@ } public boolean isMaster() { - return parent==null; + return !parent.isForwarder(); } public int addNewSessionManager(Forwarder fw,REPCommand receivedCommand) {