changeset 76:f07d649cae30

change some firleds modifier public to private.
author kent
date Sat, 10 Nov 2007 01:01:22 +0900
parents ea4a1eec3b36
children 015cdb9ecc21
files src/pathfinder/ChannelSimulator.java src/pathfinder/EditorEmulator.java src/pathfinder/NetworkSimulator.java src/pathfinder/Test.java src/pathfinder/Text.java
diffstat 5 files changed, 73 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
--- a/src/pathfinder/ChannelSimulator.java	Thu Nov 08 19:55:21 2007 +0900
+++ b/src/pathfinder/ChannelSimulator.java	Sat Nov 10 01:01:22 2007 +0900
@@ -4,9 +4,9 @@
 import java.util.Queue;
 
 public class ChannelSimulator<P> {
-	public NetworkSimulator<P> ns;
-	public Queue<P> q0;
-	public Queue<P> q1;
+	private NetworkSimulator<P> ns;
+	private Queue<P> q0;
+	private Queue<P> q1;
 /*
 	public ChannelSimulator(NetworkSimulator<P> ns){
 		q0 = new LinkedList<P>(); 
--- a/src/pathfinder/EditorEmulator.java	Thu Nov 08 19:55:21 2007 +0900
+++ b/src/pathfinder/EditorEmulator.java	Sat Nov 10 01:01:22 2007 +0900
@@ -1,66 +1,82 @@
 package pathfinder;
 
 import java.util.Random;
-
 import remoteeditor.command.REPCommand;
 import remoteeditor.network.REP;
 import sample.merge.Translater;
-
-public class EditorEmulator {
-	static public int cmdNO[] = { REP.REPCMD_INSERT, REP.REPCMD_REPLACE, REP.REPCMD_DELETE };
-	private int eid;
-	private int seq;
-	private Random rand;
-	private int MAX_CMD;
-	private int ODDS;
-	public NetworkSimulator<REPCommand> ns;
-	public ChannelSimulator<REPCommand> cs;
-	public Translater translater;
-	public Text text;
+import gov.nasa.jpf.jvm.Verify;
 
-	public EditorEmulator(int id, NetworkSimulator<REPCommand> _ns, int max_cmd, int odds) {
-		eid = id;
+public class EditorEmulator extends Thread{
+	private int eid;
+	private Thread cc;
+	private NetworkSimulator<REPCommand> ns;
+	private ChannelSimulator<REPCommand> cs;
+	private Translater translater;
+	private Text text;
+
+	public EditorEmulator(int _eid, NetworkSimulator<REPCommand> _ns, int max_cmd) {
 		ns = _ns;
-		MAX_CMD = max_cmd;
-		ODDS = odds;
-		rand = new Random();
-		translater = new Translater(eid);
+		translater = new Translater(_eid);
+		cc = new AutoCmdSender(text, cs, _eid, max_cmd);
+		cs = ns.connect();
 	}
-	public EditorEmulator(int id, NetworkSimulator<REPCommand> _ns) {
-		this(id, _ns, 3, 10);
-	}
-
-	public void init(){
-		cs = ns.connect();
+	public EditorEmulator(int _eid, NetworkSimulator<REPCommand> _ns) {
+		this(_eid, _ns, 3);
 	}
 
 	public void run(){
 		REPCommand cmd;
+		cc.start();
 		System.out.println("Editor"+eid+" start.");
 
 		while(true){
 			cmd = cs.read();
 			if (cmd!=null) cmd = translater.transReceiveCmd(cmd);
-			if (cmd!=null) edit(cmd);
+			if (cmd!=null) text.edit(cmd);
+			
+			if (false) break;
 		}
 
 		System.out.println("Editor"+eid+" finish.");
+		try {
+			cc.join();
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+		}
 	}
 
-	private REPCommand genRandomCmd(){
-		if (seq>MAC_CMD || rand.nextInt(100)>ODDS) return null;
+}
+
+class AutoCmdSender extends Thread{
+	static public int cmdNO[] = { REP.REPCMD_INSERT, REP.REPCMD_REPLACE, REP.REPCMD_DELETE };
+	private Text text;
+	private ChannelSimulator<REPCommand> cs;
+	private int MAX_CMD;
+	private int eid;
+	private int seq;
 
+	public AutoCmdSender(Text _text, ChannelSimulator<REPCommand> _cs, int _eid, int max_cmd){
+		text = _text;
+		cs   = _cs;
+		MAX_CMD = max_cmd;
+		seq = 0;
+		eid = _eid;
+	}
+
+	public void run(){
+		REPCommand cmd;
+		for(int i=0; i<MAX_CMD; i++){
+			cmd = genCmd();
+			text.edit(cmd);
+			cs.write(cmd);
+		}
+	}
+
+	private REPCommand genCmd(){
 		String str = new String("inserted or replaced by editor"+eid);
-		return new REPCommand(cmdNO[rand.nextInt(2)],
+		return new REPCommand(cmdNO[Verify.random(2)],
 		                      0, eid, seq++,
-		                      rand.nextInt(text.size()), //size-1?
+		                      Verify.random(text.size()), //size-1?
 		                      str.length(), str);
 	}
-
-	private void edit(REPCommand cmd){
-		if (cmd.cmd==REP.REPCMD_INSERT)        text.insert(cmd.lineno, cmd.string);
-		else if (cmd.cmd==REP.REPCMD_REPLACE)  text.replace(cmd.lineno, cmd.string);
-		else if (cmd.cmd==REP.REPCMD_DELETE)   text.delete(cmd.lineno);
-		else assert false;
-	}
 }
--- a/src/pathfinder/NetworkSimulator.java	Thu Nov 08 19:55:21 2007 +0900
+++ b/src/pathfinder/NetworkSimulator.java	Sat Nov 10 01:01:22 2007 +0900
@@ -6,9 +6,9 @@
 public class NetworkSimulator<P> {
 	
 	/** Waiting connectionRequest to be accepted by SessionManager. */
-	public Queue<ChannelSimulator<P>> acceptList;
+	private Queue<ChannelSimulator<P>> acceptList;
 	/** Established connection */
-	public Queue<ChannelSimulator<P>> connectedList;
+	private Queue<ChannelSimulator<P>> connectedList;
 
 	public NetworkSimulator(){
 		acceptList = new LinkedList<ChannelSimulator<P>>();
--- a/src/pathfinder/Test.java	Thu Nov 08 19:55:21 2007 +0900
+++ b/src/pathfinder/Test.java	Sat Nov 10 01:01:22 2007 +0900
@@ -1,10 +1,10 @@
 package pathfinder;
 
 public class Test {
-	NetworkSimulator<String> ns;
+	private NetworkSimulator<String> ns;
 	
-	ChannelSimulator<String>  client;
-	ChannelSimulator<String>  server;
+	private ChannelSimulator<String>  client;
+	private ChannelSimulator<String>  server;
 	
 	public static void main(String [] arg)  {
 		Test test = new Test();
--- a/src/pathfinder/Text.java	Thu Nov 08 19:55:21 2007 +0900
+++ b/src/pathfinder/Text.java	Sat Nov 10 01:01:22 2007 +0900
@@ -3,6 +3,9 @@
 import java.util.Arrays;
 import java.util.LinkedList;
 
+import remoteeditor.command.REPCommand;
+import remoteeditor.network.REP;
+
 public class Text {
 	static private String[] text0 = {
 		"aaa", "bbb", "ccc", "ddd", "eee",
@@ -20,15 +23,15 @@
 		strList = new LinkedList<String>(Arrays.asList(_strings));
 	}
 
-	public void insert(int i, String str){
+	synchronized public void insert(int i, String str){
 		assert 0<i && i<strList.size();
 		strList.add(i, str);
 	}
-	public void delete(int i){
+	synchronized public void delete(int i){
 		assert 0<i && i<strList.size();
 		strList.remove(i);
 	}
-	public void replace(int i, String str){
+	synchronized public void replace(int i, String str){
 		assert 0<i && i<strList.size();
 		strList.set(i, str);
 	}
@@ -36,6 +39,12 @@
 		assert 0<i && i<strList.size();
 		return strList.get(i);
 	}
+	public void edit(REPCommand cmd){
+		if (cmd.cmd==REP.REPCMD_INSERT)        insert(cmd.lineno, cmd.string);
+		else if (cmd.cmd==REP.REPCMD_REPLACE)  replace(cmd.lineno, cmd.string);
+		else if (cmd.cmd==REP.REPCMD_DELETE)   delete(cmd.lineno);
+		else assert false;
+	}
 
 	public int size(){
 		return strList.size();