comparison test/sematest/TestEditor.java @ 405:0b1d52ffb803

TestEditor fix
author one
date Tue, 25 Nov 2008 03:46:31 +0900
parents 2cf5392b2a9f
children 8009dd7b2013
comparison
equal deleted inserted replaced
404:4bb04d5a9bbf 405:0b1d52ffb803
227 private void handle(REPCommand cmd) { 227 private void handle(REPCommand cmd) {
228 if (cmd==null) return; 228 if (cmd==null) return;
229 ns.writeLog(name +"(eid="+eid+",sid="+sid+")"+": read "+cmd); 229 ns.writeLog(name +"(eid="+eid+",sid="+sid+")"+": read "+cmd);
230 switch(cmd.cmd) { 230 switch(cmd.cmd) {
231 case REPCMD_INSERT : 231 case REPCMD_INSERT :
232 text.insert(cmd.lineno, cmd.string); 232 if (cmd.eid!=eid) {
233 text.insert(cmd.lineno, cmd.string);
234 }
233 forwardCommand(cmd); 235 forwardCommand(cmd);
234 break; 236 break;
235 case REPCMD_DELETE : 237 case REPCMD_DELETE :
236 String del=""; 238 if (cmd.eid!=eid) {
237 if(cmd.lineno>text.size()) { 239 String del="";
238 del = text.delete(cmd.lineno); 240 if(cmd.lineno>text.size()) {
239 } 241 del = text.delete(cmd.lineno);
240 cmd.setString(del); 242 }
243 cmd.setString(del);
244 }
241 forwardCommand(cmd); 245 forwardCommand(cmd);
242 break; 246 break;
243 case REPCMD_NOP : 247 case REPCMD_NOP :
244 case REPCMD_INSERT_ACK : 248 case REPCMD_INSERT_ACK :
245 case REPCMD_DELETE_ACK : 249 case REPCMD_DELETE_ACK :
246 forwardCommand(cmd); 250 forwardCommand(cmd);
247 break; 251 break;
248 case REPCMD_CLOSE : 252 case REPCMD_CLOSE :
249 case REPCMD_CLOSE_2 : 253 case REPCMD_CLOSE_2 :
250 assert(false); 254 assert(false);
251 break; 255 break;
252 256
253 case SMCMD_JOIN_ACK : 257 case SMCMD_JOIN_ACK :
254 sid = cmd.sid; 258 sid = cmd.sid;
255 eid = cmd.eid; 259 eid = cmd.eid;
256 name += "(eid="+eid+",sid="+sid+")"; 260 name += "(eid="+eid+",sid="+sid+")";
257 inputLock = false; 261 inputLock = false;
258 break; 262 break;
259 case SMCMD_PUT_ACK : 263 case SMCMD_PUT_ACK :
260 sid = cmd.sid; 264 sid = cmd.sid;
261 eid = cmd.eid; 265 eid = cmd.eid;
262 name += "(eid="+eid+",sid="+sid+")"; 266 name += "(eid="+eid+",sid="+sid+")";
263 inputLock = false; 267 inputLock = false;
264 break; 268 break;
265 case SMCMD_QUIT : 269 case SMCMD_QUIT :
266 if (cmd.eid!=eid) 270 if (cmd.eid!=eid)
267 forwardCommand(cmd); 271 forwardCommand(cmd);
268 else 272 else
269 sendCommand(new REPCommand(REP.SMCMD_QUIT_2, 273 sendCommand(new REPCommand(REP.SMCMD_QUIT_2,
270 sid, eid, seq, 0, "")); 274 sid, eid, seq, 0, ""));
271 // stop input processing after this command 275 // stop input processing after this command
272 cmds.clear(); 276 cmds.clear();
273 break; 277 break;
274 case SMCMD_START_MERGE : 278 case SMCMD_START_MERGE :
275 // lock user input during merge (optional) 279 // lock user input during merge (optional)
276 inputLock = hasInputLock; 280 inputLock = hasInputLock;
277 cmd.cmd = REP.SMCMD_START_MERGE_ACK; 281 cmd.cmd = REP.SMCMD_START_MERGE_ACK;
278 sendCommand(cmd); 282 sendCommand(cmd);
279 break; 283 break;
280 case SMCMD_END_MERGE : 284 case SMCMD_END_MERGE :
281 inputLock = false; 285 inputLock = false;
282 break; 286 break;
283 case SMCMD_QUIT_2 : 287 case SMCMD_QUIT_2 :
284 if (cmd.eid!=eid) { 288 if (cmd.eid!=eid) {
285 forwardCommand(cmd); 289 forwardCommand(cmd);
286 } else { 290 } else {
287 cmd.cmd = REP.SMCMD_QUIT_2_ACK; 291 cmd.cmd = REP.SMCMD_QUIT_2_ACK;
288 sendCommand(cmd); 292 sendCommand(cmd);
289 } 293 }
290 running = false; 294 running = false;
291 break; 295 break;
292 case SMCMD_SYNC: 296 case SMCMD_SYNC:
293 // start contents sync with newly joined editor 297 // start contents sync with newly joined editor
294 cmd.cmd = REP.SMCMD_SYNC_ACK; 298 cmd.cmd = REP.SMCMD_SYNC_ACK;
295 forwardCommand(cmd); 299 forwardCommand(cmd);
296 //if (cmd.eid==eid) { 300 //if (cmd.eid==eid) {
297 if (master && syncEnable ) { 301 if (master && syncEnable ) {
298 syncCounter = 1; 302 syncCounter = 1;
299 timeout = 1; 303 timeout = 1;
300 } 304 }
301 break; 305 break;
302 default: 306 default:
303 assert(false); 307 assert(false);
304 break; 308 break;
305 } 309 }
306 } 310 }
307 311
308 312
309 public int getPort() { 313 public int getPort() {