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