Mercurial > hg > RemoteEditor > REPSessionManager
diff test/sematest/TestEditor.java @ 300:8f6b7a1890b2
*** empty log message ***
author | kono |
---|---|
date | Wed, 01 Oct 2008 16:20:04 +0900 |
parents | d13dad30fd24 |
children | 4ee012f19855 |
line wrap: on
line diff
--- a/test/sematest/TestEditor.java Wed Oct 01 03:21:48 2008 +0900 +++ b/test/sematest/TestEditor.java Wed Oct 01 16:20:04 2008 +0900 @@ -101,16 +101,7 @@ continue; } else if (selector.select(timeout)<=0) { if (syncCounter>0) { - if (syncCounter>text.size()) { - syncCounter=0; - } else { - int i=syncCounter-1; - REPCommand del = new REPCommand(REP.REPCMD_DELETE,sid,eid,0,i, text.get(i)); - REPCommand ins = new REPCommand(REP.REPCMD_INSERT,sid,eid,0,i, text.get(i)); - sendCommand(del); - sendCommand(ins); - syncCounter++; - } + syncText(); } userInput(); } else { @@ -119,6 +110,19 @@ } } + private void syncText() { + if (syncCounter>text.size()) { + syncCounter=0; + } else { + int i=syncCounter-1; + REPCommand del = new REPCommand(REP.REPCMD_DELETE,sid,eid,0,i, text.get(i)); + REPCommand ins = new REPCommand(REP.REPCMD_INSERT,sid,eid,0,i, text.get(i)); + sendCommand(del); + sendCommand(ins); + syncCounter++; + } + } + private void userInput() { REPCommand cmd = cmds.poll(); if (cmd!=null) { @@ -139,6 +143,7 @@ case SMCMD_JOIN: case SMCMD_PUT: sendCommand(cmd); + inputLock = true; // wait until ACK break; default: assert(false); @@ -164,7 +169,7 @@ case REPCMD_INSERT : text.insert(cmd.lineno, cmd.string); sendCommand(cmd); - sendCommand(nop); + // sendCommand(nop); session manager do this for me break; case REPCMD_INSERT_ACK : assert(false); @@ -173,7 +178,7 @@ String del = text.delete(cmd.lineno); cmd.setString(del); sendCommand(cmd); - sendCommand(nop); + // sendCommand(nop); session manager do this for me break; case REPCMD_DELETE_ACK : assert(false); @@ -189,10 +194,12 @@ case SMCMD_JOIN_ACK : sid = cmd.sid; eid = cmd.eid; + inputLock = false; break; case SMCMD_PUT_ACK : sid = cmd.sid; eid = cmd.eid; + inputLock = false; break; case SMCMD_QUIT : sendCommand(cmd);