From 222d028fac58233a451e2de875353252a3dc9f63 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 24 May 2008 21:06:15 +0000 Subject: PRocesses now get removed properly. Removed all VSSimulation* classes. --- sources/core/VSProcess.java | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'sources/core/VSProcess.java') diff --git a/sources/core/VSProcess.java b/sources/core/VSProcess.java index e5e8c9d..5612d89 100644 --- a/sources/core/VSProcess.java +++ b/sources/core/VSProcess.java @@ -22,7 +22,7 @@ public class VSProcess extends VSPrefs { private VSLogging logging; private VSPrefs prefs; private VSRandom random; - private VSSimulationCanvas simulationCanvas; + private VSSimulatorCanvas simulationCanvas; private VSTask randomCrashTask; private VSVectorTime vectorTime; private boolean hasCrashed; @@ -33,7 +33,8 @@ public class VSProcess extends VSPrefs { private boolean timeModified; private double clockOffset; private float clockVariance; - private int processID; + private int processID; // Represents the PID of a process + private int processNum; // Represents the array index of the process, for internal usage private long globalTime; private long lamportTime; private long localTime; @@ -84,8 +85,9 @@ public class VSProcess extends VSPrefs { private static final String DEFAULT_STRING_VALUE_KEYS[] = { }; - public VSProcess(VSPrefs prefs, VSSimulationCanvas simulationCanvas, VSLogging logging) { + public VSProcess(VSPrefs prefs, int processNum, VSSimulatorCanvas simulationCanvas, VSLogging logging) { this.protocolsToReset = new ArrayList(); + this.processNum = processNum; this.prefs = prefs; this.simulationCanvas = simulationCanvas; this.logging = logging; @@ -257,6 +259,10 @@ public class VSProcess extends VSPrefs { return processID; } + public synchronized int getProcessNum() { + return processNum; + } + public synchronized void setProcessID(int processID) { this.processID = processID; } @@ -418,7 +424,7 @@ public class VSProcess extends VSPrefs { } public synchronized void increaseVectorTime() { - vectorTime.set(processID-1, new Long(vectorTime.get(processID-1).longValue()+1)); + vectorTime.set(processNum, new Long(vectorTime.get(processNum).longValue()+1)); vectorTime.setGlobalTime(globalTime); vectorTimeHistory.add(vectorTime.getCopy()); } @@ -427,7 +433,7 @@ public class VSProcess extends VSPrefs { final int size = vectorTime.size(); for (int i = 0; i < size; ++i) { - if (i == processID-1) + if (i == processNum) vectorTime.set(i, new Long(vectorTime.get(i).longValue()+1)); else if (vectorTimeUpdate.get(i) > vectorTime.get(i)) vectorTime.set(i, vectorTimeUpdate.get(i)); @@ -518,7 +524,7 @@ public class VSProcess extends VSPrefs { return process.getProcessID() == processID; } - public VSSimulationCanvas getSimulationCanvas() { + public VSSimulatorCanvas getSimulationCanvas() { return simulationCanvas; } @@ -530,6 +536,21 @@ public class VSProcess extends VSPrefs { processCounter = 0; } + public void removeProcessAtIndex(int index) { + if (index < processNum) + --processNum; + + vectorTime.remove(index); + for (VSVectorTime vectorTime : vectorTimeHistory) + vectorTime.remove(index); + } + + public void addedAProcess() { + vectorTime.add(new Long(0)); + for (VSVectorTime vectorTime : vectorTimeHistory) + vectorTime.add(new Long(0)); + } + public VSProtocol getProtocolObject(String protocolClassname) { VSProtocol protocol = null; -- cgit v1.2.3