diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-31 00:24:30 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-31 00:24:30 +0000 |
| commit | 56e973882cd3e8358dbefa2b6307f64301f14c92 (patch) | |
| tree | 95b01e3630403ad53a0f77625d244e160dd4e4c7 /sources | |
| parent | 62059d598210633f2ec52cd8d2460f275fe5390b (diff) | |
bugfix
Diffstat (limited to 'sources')
| -rw-r--r-- | sources/core/VSProcess.java | 41 | ||||
| -rw-r--r-- | sources/simulator/VSLogging.java | 12 | ||||
| -rw-r--r-- | sources/simulator/VSSimulator.java | 46 | ||||
| -rw-r--r-- | sources/simulator/VSSimulatorCanvas.java | 13 |
4 files changed, 56 insertions, 56 deletions
diff --git a/sources/core/VSProcess.java b/sources/core/VSProcess.java index 354ebe3..6d1b01d 100644 --- a/sources/core/VSProcess.java +++ b/sources/core/VSProcess.java @@ -79,7 +79,7 @@ public class VSProcess extends VSPrefs { private VSRandom random; /** The simulation canvas. */ - private VSSimulatorCanvas simulationCanvas; + private VSSimulatorCanvas simulatorCanvas; /** The random crash task. May be null if there is no such random task. */ private VSTask randomCrashTask; @@ -132,9 +132,6 @@ public class VSProcess extends VSPrefs { /** The local time. */ private long localTime; - /** The process counter. Needed for the unique process id's. */ - private static int processCounter; - /** The Constant DEFAULT_INTEGER_VALUE_KEYS. * This array contains all Integer prefs of the process which should show * up in the prefs menu! All keys which dont start with "sim." only show @@ -190,22 +187,23 @@ public class VSProcess extends VSPrefs { * * @param prefs the simulation's default prefs * @param processNum the process num - * @param simulationCanvas the simulation canvas + * @param simulatorCanvas the simulation canvas * @param logging the logging object */ public VSProcess(VSPrefs prefs, int processNum, - VSSimulatorCanvas simulationCanvas, VSLogging logging) { + VSSimulatorCanvas simulatorCanvas, VSLogging logging) { this.protocolsToReset = new ArrayList<VSAbstractProtocol>(); this.processNum = processNum; this.prefs = prefs; - this.simulationCanvas = simulationCanvas; + this.simulatorCanvas = simulatorCanvas; this.logging = logging; - random = new VSRandom(processID+processCounter); + + processID = simulatorCanvas.processIDCount(); + random = new VSRandom(processID*processNum+processID+processNum); initTimeFormats(); isPaused = true; - processID = ++processCounter; /* Create the super.VSPrefs with it's default prefs */ fillWithDefaults(); @@ -233,7 +231,7 @@ public class VSProcess extends VSPrefs { vectorTimeHistory = new ArrayList<VSVectorTime>(); crashHistory = new ArrayList<Long>(); - final int numProcesses = simulationCanvas.getNumProcesses(); + final int numProcesses = simulatorCanvas.getNumProcesses(); for (int i = 0; i < numProcesses; ++i) vectorTime.add(new Long(0)); } @@ -249,7 +247,7 @@ public class VSProcess extends VSPrefs { vectorTimeHistory.clear(); crashHistory.clear(); - final int numProcesses = simulationCanvas.getNumProcesses(); + final int numProcesses = simulatorCanvas.getNumProcesses(); for (int i = numProcesses; i > 0; --i) vectorTime.add(new Long(0)); } @@ -359,7 +357,7 @@ public class VSProcess extends VSPrefs { */ public void createRandomCrashTask() { if (!isCrashed) { - VSTaskManager taskManager = simulationCanvas.getTaskManager(); + VSTaskManager taskManager = simulatorCanvas.getTaskManager(); long crashTime = getARandomCrashTime(); if (crashTime < 0) @@ -644,7 +642,7 @@ public class VSProcess extends VSPrefs { /* Calculate the random outage time! */ long outageTime = globalTime + random.nextLong(durationTime+1) % - simulationCanvas.getUntilTime(); + simulatorCanvas.getUntilTime(); return outageTime; } @@ -664,8 +662,8 @@ public class VSProcess extends VSPrefs { if (getRandomPercentage() < getInteger("process.prob.crash")) { /* Calculate the random crash time! */ final long crashTime = random.nextLong( - simulationCanvas.getUntilTime()+1) % - simulationCanvas.getUntilTime(); + simulatorCanvas.getUntilTime()+1) % + simulatorCanvas.getUntilTime(); return crashTime; } @@ -826,7 +824,7 @@ public class VSProcess extends VSPrefs { buffer.append("; "); buffer.append(message.toStringFull()); logg(buffer.toString()); - simulationCanvas.sendMessage(message); + simulatorCanvas.sendMessage(message); } /** @@ -906,7 +904,7 @@ public class VSProcess extends VSPrefs { * @return the simulation canvas */ public VSSimulatorCanvas getSimulatorCanvas() { - return simulationCanvas; + return simulatorCanvas; } /** @@ -919,15 +917,6 @@ public class VSProcess extends VSPrefs { } /** - * Resets the process counter. The next newly created process will have - * "0" as its process num. This static method is used by the simulator - * canvas if it opens a new simulation. - */ - public static void resetProcessCounter() { - processCounter = 0; - } - - /** * Removes the process at the specified index. Called by the simulation * canvas if a process has been removed from the simulation. Needed in * order to update the vector time and the local processNum. diff --git a/sources/simulator/VSLogging.java b/sources/simulator/VSLogging.java index bfc9d30..f240e78 100644 --- a/sources/simulator/VSLogging.java +++ b/sources/simulator/VSLogging.java @@ -54,7 +54,7 @@ public class VSLogging { private ArrayList<StringBuffer> loggingLines; /** The simulation canvas. */ - private VSSimulatorCanvas simulationCanvas; + private VSSimulatorCanvas simulatorCanvas; /** The logging messages are filtered. */ private boolean isFiltered; @@ -81,10 +81,10 @@ public class VSLogging { /** * Sets the simulation canvas. * - * @param simulationCanvas the simulation canvas + * @param simulatorCanvas the simulation canvas */ - public void setSimulationCanvas(VSSimulatorCanvas simulationCanvas) { - this.simulationCanvas = simulationCanvas; + public void setSimulationCanvas(VSSimulatorCanvas simulatorCanvas) { + this.simulatorCanvas = simulatorCanvas; } /** @@ -102,10 +102,10 @@ public class VSLogging { * @param message the message */ public void logg(String message) { - if (simulationCanvas == null) + if (simulatorCanvas == null) logg(message, 0); else - logg(message, simulationCanvas.getTime()); + logg(message, simulatorCanvas.getTime()); } /** diff --git a/sources/simulator/VSSimulator.java b/sources/simulator/VSSimulator.java index 680a6a7..3efc09d 100644 --- a/sources/simulator/VSSimulator.java +++ b/sources/simulator/VSSimulator.java @@ -127,7 +127,7 @@ public class VSSimulator extends JPanel { private VSPrefs prefs; /** The simulation canvas. */ - private VSSimulatorCanvas simulationCanvas; + private VSSimulatorCanvas simulatorCanvas; /** The simulator frame. */ private VSSimulatorFrame simulatorFrame; @@ -398,7 +398,7 @@ public class VSSimulator extends JPanel { splitPane1.setDividerLocation((int) (getPaintSize()/2) - 20); - int numProcesses = simulationCanvas.getNumProcesses(); + int numProcesses = simulatorCanvas.getNumProcesses(); for (int i = 0; i <= numProcesses; ++i) { localTextFields.add("0000"); globalTextFields.add("0000"); @@ -408,7 +408,7 @@ public class VSSimulator extends JPanel { localPIDComboBox.setSelectedIndex(0); globalPIDComboBox.setSelectedIndex(0); - thread = new Thread(simulationCanvas); + thread = new Thread(simulatorCanvas); thread.start(); } @@ -421,13 +421,13 @@ public class VSSimulator extends JPanel { splitPaneH = new JSplitPane(); splitPaneV = new JSplitPane(); - simulationCanvas = new VSSimulatorCanvas(prefs, this, logging); - taskManager = simulationCanvas.getTaskManager(); - logging.setSimulationCanvas(simulationCanvas); + simulatorCanvas = new VSSimulatorCanvas(prefs, this, logging); + taskManager = simulatorCanvas.getTaskManager(); + logging.setSimulationCanvas(simulatorCanvas); JPanel canvasPanel = new JPanel(); canvasPanel.setLayout(new GridLayout(1, 1, 3, 3)); - canvasPanel.add(simulationCanvas); + canvasPanel.add(simulatorCanvas); canvasPanel.setMinimumSize(new Dimension(0, 0)); canvasPanel.setMaximumSize(new Dimension(0, 0)); @@ -488,7 +488,7 @@ public class VSSimulator extends JPanel { AbstractButton abstractButton = (AbstractButton) ce.getSource(); ButtonModel buttonModel = abstractButton.getModel(); - simulationCanvas.showLamport(buttonModel.isSelected()); + simulatorCanvas.showLamport(buttonModel.isSelected()); if (buttonModel.isSelected()) vectorTimeActiveCheckBox.setSelected(false); } @@ -503,7 +503,7 @@ public class VSSimulator extends JPanel { AbstractButton abstractButton = (AbstractButton) ce.getSource(); ButtonModel buttonModel = abstractButton.getModel(); - simulationCanvas.showVectorTime(buttonModel.isSelected()); + simulatorCanvas.showVectorTime(buttonModel.isSelected()); if (buttonModel.isSelected()) lamportActiveCheckBox.setSelected(false); } @@ -518,7 +518,7 @@ public class VSSimulator extends JPanel { AbstractButton abstractButton = (AbstractButton) ce.getSource(); ButtonModel buttonModel = abstractButton.getModel(); - simulationCanvas.isAntiAliased(buttonModel.isSelected()); + simulatorCanvas.isAntiAliased(buttonModel.isSelected()); } }); toolsPanel.add(antiAliasing); @@ -600,11 +600,11 @@ public class VSSimulator extends JPanel { globalPIDComboBox = new JComboBox(); lastSelectedProcessNum = 0; - int numProcesses = simulationCanvas.getNumProcesses(); + int numProcesses = simulatorCanvas.getNumProcesses(); String processString = prefs.getString("lang.process"); for (int i = 0; i < numProcesses; ++i) { - int pid = simulationCanvas.getProcess(i).getProcessID(); + int pid = simulatorCanvas.getProcess(i).getProcessID(); processesComboBox.addItem(processString + " " + pid); localPIDComboBox.addItem("PID: " + pid); globalPIDComboBox.addItem("PID: " + pid); @@ -649,7 +649,7 @@ public class VSSimulator extends JPanel { localPIDComboBox.setSelectedIndex(processNum); globalPIDComboBox.setSelectedIndex(processNum); - if (processNum == simulationCanvas.getNumProcesses()) { + if (processNum == simulatorCanvas.getNumProcesses()) { tabbedPane.setEnabledAt(1, false); if (tabbedPane.getSelectedIndex() == 1) tabbedPane.setSelectedIndex(0); @@ -658,7 +658,7 @@ public class VSSimulator extends JPanel { tabbedPane.setEnabledAt(1, true); } - if (processNum != simulationCanvas.getNumProcesses()) { + if (processNum != simulatorCanvas.getNumProcesses()) { VSProcess process = getSelectedProcess(); VSProcessEditor processEditor = new VSProcessEditor(prefs, process); @@ -1009,7 +1009,7 @@ public class VSSimulator extends JPanel { */ private VSProcess getSelectedProcess() { int processNum = getSelectedProcessNum(); - return simulationCanvas.getProcess(processNum); + return simulatorCanvas.getProcess(processNum); } /** @@ -1025,11 +1025,11 @@ public class VSSimulator extends JPanel { ? localPIDComboBox.getSelectedIndex() : globalPIDComboBox.getSelectedIndex(); - if (processNum == simulationCanvas.getNumProcesses()) - return simulationCanvas.getProcessesArray(); + if (processNum == simulatorCanvas.getNumProcesses()) + return simulatorCanvas.getProcessesArray(); ArrayList<VSProcess> arr = new ArrayList<VSProcess>(); - arr.add(simulationCanvas.getProcess(processNum)); + arr.add(simulatorCanvas.getProcess(processNum)); return arr; } @@ -1081,7 +1081,7 @@ public class VSSimulator extends JPanel { * @return the simulation canvas */ public VSSimulatorCanvas getSimulatorCanvas() { - return simulationCanvas; + return simulatorCanvas; } /** @@ -1097,8 +1097,8 @@ public class VSSimulator extends JPanel { * Update from prefs. */ public void updateFromPrefs() { - simulationCanvas.setBackground(prefs.getColor("col.background")); - simulationCanvas.updateFromPrefs(); + simulatorCanvas.setBackground(prefs.getColor("col.background")); + simulatorCanvas.updateFromPrefs(); } /** @@ -1128,7 +1128,7 @@ public class VSSimulator extends JPanel { * @param index the index */ public void addProcessAtIndex(int index) { - int processID = simulationCanvas.getProcess(index).getProcessID(); + int processID = simulatorCanvas.getProcess(index).getProcessID(); String processString = prefs.getString("lang.process"); localTextFields.add(index, "0000"); @@ -1172,7 +1172,7 @@ public class VSSimulator extends JPanel { tabbedPane.setSelectedIndex(selectedIndex); /* Update the 'Variables tab' */ - if (getSelectedProcessNum() != simulationCanvas.getNumProcesses()) { + if (getSelectedProcessNum() != simulatorCanvas.getNumProcesses()) { VSProcess process = getSelectedProcess(); VSProcessEditor editor = new VSProcessEditor(prefs, process); tabbedPane.setComponentAt(1, editor.getContentPane()); diff --git a/sources/simulator/VSSimulatorCanvas.java b/sources/simulator/VSSimulatorCanvas.java index be66f2a..c1ddd65 100644 --- a/sources/simulator/VSSimulatorCanvas.java +++ b/sources/simulator/VSSimulatorCanvas.java @@ -220,6 +220,9 @@ public class VSSimulatorCanvas extends Canvas implements Runnable { /** The message line counter. */ private long messageLineCounter; + /** The process counter. Needed for the unique process id's. */ + private int processCounter; + /** * The class VSMessageLine, an object of this class represents a message * line drawn into the painting area. @@ -458,7 +461,6 @@ public class VSSimulatorCanvas extends Canvas implements Runnable { numProcesses = prefs.getInteger("sim.process.num"); updateFromPrefs(); - VSProcess.resetProcessCounter(); for (int i = 0; i < numProcesses; ++i) processes.add(createProcess(i)); @@ -1029,6 +1031,15 @@ public class VSSimulatorCanvas extends Canvas implements Runnable { } /** + * Gets the next process id. + * + * @return the next process id + */ + public int processIDCount() { + return ++processCounter; + } + + /** * Gets the task manager. * * @return the task manager |
