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);