Mercurial > hg > RemoteEditor > Eclipse
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();