Mercurial > hg > RemoteEditor > Eclipse
changeset 80:8d0780adb43a
javapathfinder
author | kent |
---|---|
date | Sat, 10 Nov 2007 22:57:10 +0900 |
parents | 9d060c0c9658 |
children | 2adc28cbd542 |
files | src/pathfinder/EditorEmulator2.java src/pathfinder/TestMerger2.java |
diffstat | 2 files changed, 34 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/src/pathfinder/EditorEmulator2.java Sat Nov 10 21:41:43 2007 +0900 +++ b/src/pathfinder/EditorEmulator2.java Sat Nov 10 22:57:10 2007 +0900 @@ -48,12 +48,12 @@ //終了条件 if (checkQuit(cmd)){ System.out.println("\tEditor"+eid+" catch QUIT command emited by itself."); - assert null==translater.transReceiveCmd(cmd); + translater.transReceiveCmd(cmd); running=false; break; } System.out.println("\tEditor"+eid+" catch command:>> "+cmd.toString()); - if (isOwner) cmd.setThroughMaster(true); cmd = translater.transReceiveCmd(cmd); + if (isOwner&&cmd!=null) cmd.setThroughMaster(true); if (cmd==null) continue; text.edit(cmd); @@ -69,6 +69,8 @@ cmd.eid = eid; cmd.setString("this is inserted or replaced by Editor"+eid+":"+seq); cmd = translater.transSendCmd(cmd); + if (isOwner) cmd.setThroughMaster(true); + text.edit(cmd); cs.write(cmd); seq++; }
--- a/src/pathfinder/TestMerger2.java Sat Nov 10 21:41:43 2007 +0900 +++ b/src/pathfinder/TestMerger2.java Sat Nov 10 22:57:10 2007 +0900 @@ -25,7 +25,8 @@ tm = new TestMerger2(2, 3); //tm.init(); //tm.test2cmd(); - tm.test1cmd(); + //tm.test1cmd(); + tm.test0cmd(); tm.startTest(); tm.printAllTexts(); @@ -54,19 +55,22 @@ int j=0; LinkedList<REPCommand> cmds = new LinkedList<REPCommand>(); // 各エディタが送信するコマンド列を生成 - String str = "Editor"+i+":"+j; + + String str = "created by Editor"+i+":"+j; REPCommand cmd = new REPCommand(REP.REPCMD_INSERT, 0, i, j++, 10, //Verify.random(text.size()-1), //size-1? str.length(), str); cmds.add( cmd); - str = "Editor"+i+":"+j; + str = "created by Editor"+i+":"+j; cmd = new REPCommand(REP.REPCMD_INSERT, 0, i, j++, 10, //Verify.random(text.size()-1), //size-1? str.length(), str); cmds.add( cmd); - EditorEmulator2 ee = new EditorEmulator2(i, ns, cmds, "Editor"+i); + + EditorEmulator2 ee = new EditorEmulator2(i, ns, cmds, "Editor"+i); + if(i==0) ee.setOwner(true); editors.add(ee); } } @@ -84,12 +88,24 @@ str.length(), str); cmds.add( cmd); EditorEmulator2 ee = new EditorEmulator2(i, ns, cmds, "Editor"+i); + if(i==0) ee.setOwner(true); editors.add(ee); } } - - + private void test0cmd(){ + for (int i=0; i<N_editor; i++){ + int j=0; + LinkedList<REPCommand> cmds = new LinkedList<REPCommand>(); + //各エディタが送信するコマンド列を生成 + EditorEmulator2 ee = new EditorEmulator2(i, ns, cmds, "Editor"+i); + if(i==0) ee.setOwner(true); + editors.add(ee); + } + } + + + private void startTest() { for (EditorEmulator2 ee: editors){ ee.start(); @@ -110,15 +126,19 @@ private void printAllTexts(){ for(EditorEmulator2 ee: editors){ - System.out.println(ee.getName()); + System.out.println("--"+ee.getName()+"------------------------"); ee.getText().printAllText(); } } - + private boolean checkEquality(){ - EditorEmulator2 ee0 = editors.element(); + /* + Text ee0 = editors.remove().getText(); + return editors.remove().getText().equals(ee0); + */ + Text text0 = editors.element().getText(); for(EditorEmulator2 ee: editors){ - if (!ee0.equals(ee)) return false; + if (!text0.equals(ee.getText())) return false; } return true; }