comparison rep/handler/Translator.java @ 434:0e72945867bb

merge on going...
author one
date Tue, 12 Jan 2010 02:24:29 +0900
parents bd883b059360
children 2b034d12170e
comparison
equal deleted inserted replaced
433:bd883b059360 434:0e72945867bb
52 * is returned. At this 52 * is returned. At this
53 * stage my writeQueue is empty, our editor is waiting for me. 53 * stage my writeQueue is empty, our editor is waiting for me.
54 * Start merge process. 54 * Start merge process.
55 * @param cmd 55 * @param cmd
56 */ 56 */
57 public boolean catchOwnCommand(REPNode editor, int eid){ 57 public boolean catchOwnCommand(REPNode editor, int eid0){
58 logger.writeLog("beforeMerge:"+unMergedCmds); 58 logger.writeLog("beforeMerge:"+unMergedCmds);
59 LinkedList<REPCommand> output = new LinkedList<REPCommand>(); 59 LinkedList<REPCommand> output = new LinkedList<REPCommand>();
60 TreeSet<REPCommand> cmds = new TreeSet<REPCommand>(new REPCommandComparator(eid));
61 // merge queue上にあるコマンドを全部undoコマンドするのと同時に 60 // merge queue上にあるコマンドを全部undoコマンドするのと同時に
62 // sort したコマンド列を生成する 61 // sort したコマンド列を生成する
63 for( REPCommand cmd0 : unMergedCmds) { 62 for( REPCommand cmd0 : unMergedCmds) {
64 output.add( createUndo(cmd0) ); 63 output.add( createUndo(cmd0) );
65 } 64 }
65
66 TreeSet<REPCommand> cmds = new TreeSet<REPCommand>(new REPCommandComparator(eid0));
66 for( REPCommand cmd0 : editor.getSentList()) { 67 for( REPCommand cmd0 : editor.getSentList()) {
67 if (cmd0.cmd==REP.REPCMD_INSERT || cmd0.cmd==REP.REPCMD_DELETE) 68 if (cmd0.cmd==REP.REPCMD_INSERT || cmd0.cmd==REP.REPCMD_DELETE)
68 cmds.add(cmd0); 69 cmds.add(cmd0);
69 } 70 }
71 logger.writeLog("Ediotr"+eid+" Merge:: sorted sent list => Eid="+eid+cmds);
70 output.addAll(cmds); 72 output.addAll(cmds);
71 // ACKが来たものは必ず先頭 73 // ACKが来たものは必ず先頭
72 74
73 // unMerged command のdeleteのundo string は、この時点で使えない。 75 // unMerged command のdeleteのundo string は、この時点で使えない。
74 // Editor 側から送り返して来たものを使う必要がある。 76 // Editor 側から送り返して来たものを使う必要がある。