Mercurial > hg > RemoteEditor > REPSessionManager
changeset 303:41f05c8ff02b
*** empty log message ***
author | kono |
---|---|
date | Wed, 01 Oct 2008 18:32:38 +0900 |
parents | 4ee012f19855 |
children | 75192c844a8d |
files | test/sematest/TestEditor.java test/sematest/TestSessionManager.java |
diffstat | 2 files changed, 33 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/test/sematest/TestEditor.java Wed Oct 01 17:03:20 2008 +0900 +++ b/test/sematest/TestEditor.java Wed Oct 01 18:32:38 2008 +0900 @@ -37,22 +37,23 @@ private boolean inputLock=false; public boolean detached=false; public boolean master=false; - private int syncCounter; + private int syncCounter=0; private boolean hasInputLock=true; - static private String[] text1d = { - "aaa", "bbb", "ccc", "ddd", "eee", - }; - + public TestEditor(String name, String _host,int _port, boolean master){ super(name); + LinkedList<REPCommand>cmdList = new LinkedList<REPCommand>(); + String[] txts = { + "aaa", "bbb", "ccc", "ddd", "eee", + }; semaIP = new InetSocketAddress(_host, _port); ns = REPLogger.singleton(); this.name = name; - cmds = new LinkedList<REPCommand>(); + cmds = cmdList; if (master) { this.master=true; - text = new Text(text1d); + text = new Text(txts); cmds.add(new REPCommand(REP.SMCMD_PUT,0,0,0,0,name+"-file")); cmds.add(new REPCommand(REP.REPCMD_INSERT,0,0,0,0,"m0")); cmds.add(new REPCommand(REP.REPCMD_DELETE,0,0,0,0,"m0")); @@ -62,7 +63,19 @@ cmds.add(new REPCommand(REP.SMCMD_JOIN,0,0,0,0,name)); cmds.add(new REPCommand(REP.REPCMD_INSERT,0,0,0,0,"c0")); cmds.add(new REPCommand(REP.REPCMD_DELETE,0,0,0,0,"c0")); - //cmds.add(new REPCommand(REP.SMCMD_QUIT,0,0,0,0,"")); + } + } + + public TestEditor(String name, String _host,int _port, boolean master, + String[] txts,LinkedList<REPCommand> cmdList){ + super(name); + semaIP = new InetSocketAddress(_host, _port); + ns = REPLogger.singleton(); + this.name = name; + cmds = cmdList; + if (master) { + this.master=true; + text = new Text(txts); } } @@ -157,7 +170,7 @@ * clients simply disconnect from the session manager. */ cmds.clear(); - sendCommand(cmd,cmd.seq++); + sendCommand(cmd,seq++); break; case SMCMD_JOIN: case SMCMD_PUT: @@ -224,7 +237,11 @@ inputLock = false; break; case SMCMD_QUIT : - sendCommand(cmd,seq); + if (cmd.eid!=eid) + sendCommand(cmd,cmd.seq); + else + sendCommand(new REPCommand(REP.SMCMD_QUIT_2, + sid, eid, seq, 0, ""),seq++); cmds.clear(); break; case SMCMD_QUIT_ACK : @@ -243,7 +260,9 @@ inputLock = false; break; case SMCMD_QUIT_2 : - sendCommand(cmd,cmd.seq); + if (cmd.eid!=eid) { + sendCommand(cmd,cmd.seq); + } running = false; break; case SMCMD_SYNC:
--- a/test/sematest/TestSessionManager.java Wed Oct 01 17:03:20 2008 +0900 +++ b/test/sematest/TestSessionManager.java Wed Oct 01 18:32:38 2008 +0900 @@ -27,7 +27,7 @@ * Connect port for each editor * Master/client flag for each editor * Editor or slave session manager must be started by - * master session manager using syncExec. + * master session managers using syncExec. */ int editorPort[] = {masterPort,masterPort}; boolean editorMaster[] = {true,false}; @@ -47,7 +47,7 @@ /* * Create all editors, master session managers and slave session - * managers with specfied port. All instances are not started yet. + * managers with specified port. All instances are not started yet. */ public TestSessionManager(int sm, int ss, int e) { @@ -76,6 +76,7 @@ final SessionManagerGUI gui = new TestGUI(sm); final int port1 = port; logger.writeLog("TestSessionManager.startSessionManager() : start SessionManager"); + // syncExec does not wake selector, do this before run(). if (i<ev1.length) sm.syncExec(ev1[i]); Runnable start = new Runnable() {