summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-19 09:34:17 +0000
committerPaul Buetow <paul@buetow.org>2008-05-19 09:34:17 +0000
commit5eb35a6da1ba939878c0351f35b4019fd406ffdd (patch)
treed74636167291a21b5694eee3fd5f5564d1075424 /sources
parent6dec65db5dceaf8636a98f5bd51c31e20922ecdd (diff)
TaskManager bugfix.
Diffstat (limited to 'sources')
-rw-r--r--sources/core/VSTask.java28
-rw-r--r--sources/core/VSTaskManager.java14
-rw-r--r--sources/simulator/VSSimulation.java167
-rw-r--r--sources/simulator/VSSimulationPanel.java19
4 files changed, 114 insertions, 114 deletions
diff --git a/sources/core/VSTask.java b/sources/core/VSTask.java
index 7c2b067..89c61fb 100644
--- a/sources/core/VSTask.java
+++ b/sources/core/VSTask.java
@@ -47,12 +47,12 @@ public class VSTask implements Comparable {
return false;
}
- public boolean timeOver() {
- if (isGlobalTimed)
- return taskTime < process.getGlobalTime();
+ public boolean timeOver() {
+ if (isGlobalTimed)
+ return taskTime < process.getGlobalTime();
- return taskTime < process.getTime();
- }
+ return taskTime < process.getTime();
+ }
public boolean equals(VSTask task) {
return event.equals(task.getEvent())
@@ -183,18 +183,18 @@ public class VSTask implements Comparable {
else if (taskTime > task.getTaskTime())
return 1;
- /* If it's a ProtocolEvent, it should get handled first */
- boolean a = event instanceof ProtocolEvent;
- boolean b = task.getEvent() instanceof ProtocolEvent;
+ /* If it's a ProtocolEvent, it should get handled first */
+ boolean a = event instanceof ProtocolEvent;
+ boolean b = task.getEvent() instanceof ProtocolEvent;
- if (a && b)
- return 0;
+ if (a && b)
+ return 0;
- if (a)
- return -1;
+ if (a)
+ return -1;
- if (b)
- return 1;
+ if (b)
+ return 1;
}
return 0;
diff --git a/sources/core/VSTaskManager.java b/sources/core/VSTaskManager.java
index 1857865..e5adfac 100644
--- a/sources/core/VSTaskManager.java
+++ b/sources/core/VSTaskManager.java
@@ -22,7 +22,7 @@ public class VSTaskManager {
this.fullfilledProgrammedTasks = new LinkedList<VSTask>();
}
- /*
+ /*
private Comparator<VSTask> createComparator() {
return new Comparator<VSTask>() {
public int compare(VSTask a, VSTask b) {
@@ -36,7 +36,7 @@ public class VSTaskManager {
}
};
}
- */
+ */
public synchronized void runTasks(final long step, final long offset, final long lastGlobalTime) {
VSTask task = null;
@@ -184,10 +184,10 @@ public class VSTaskManager {
}
private void insert(VSTask task) {
- if (task.timeOver())
- fullfilledProgrammedTasks.addLast(task);
+ if (task.timeOver())
+ fullfilledProgrammedTasks.addLast(task);
- else if (task.isGlobalTimed())
+ else if (task.isGlobalTimed())
globalTasks.add(task);
else
@@ -216,7 +216,7 @@ public class VSTaskManager {
return false;
}
- /*
+ /*
public synchronized LinkedList<VSTask> getProtocolTasks(VSProtocol protocol) {
LinkedList<VSTask> protocolTasks = new LinkedList<VSTask>();
@@ -278,7 +278,7 @@ public class VSTaskManager {
insert(task);
}
}
-*/
+ */
public synchronized VSPriorityQueue<VSTask> getLocalTasks() {
VSPriorityQueue<VSTask> processTasks = new VSPriorityQueue<VSTask>();
diff --git a/sources/simulator/VSSimulation.java b/sources/simulator/VSSimulation.java
index 3cf42e0..c6ef5c1 100644
--- a/sources/simulator/VSSimulation.java
+++ b/sources/simulator/VSSimulation.java
@@ -21,8 +21,8 @@ public class VSSimulation extends VSFrame implements ActionListener {
private JCheckBox lamportActiveCheckBox;
private JCheckBox vectorTimeActiveCheckBox;
private JComboBox processesComboBox;
- private JComboBox localPIDComboBox;
- private JComboBox globalPIDComboBox;
+ private JComboBox localPIDComboBox;
+ private JComboBox globalPIDComboBox;
private int lastSelectedProcessNum;
private ArrayList<String> localTextFields;
private ArrayList<String> globalTextFields;
@@ -319,15 +319,15 @@ public class VSSimulation extends VSFrame implements ActionListener {
String processString = prefs.getString("lang.process");
for (int i = 0; i < numProcesses; ++i) {
- int pid = simulationPanel.getProcess(i).getProcessID();
+ int pid = simulationPanel.getProcess(i).getProcessID();
processesComboBox.addItem(processString + " " + pid);
- localPIDComboBox.addItem("PID: " + pid);
- globalPIDComboBox.addItem("PID: " + pid);
- }
+ localPIDComboBox.addItem("PID: " + pid);
+ globalPIDComboBox.addItem("PID: " + pid);
+ }
- processesComboBox.addItem(prefs.getString("lang.processes.all"));
- localPIDComboBox.addItem(prefs.getString("lang.all"));
- globalPIDComboBox.addItem(prefs.getString("lang.all"));
+ processesComboBox.addItem(prefs.getString("lang.processes.all"));
+ localPIDComboBox.addItem(prefs.getString("lang.all"));
+ globalPIDComboBox.addItem(prefs.getString("lang.all"));
JPanel localPanel = createTaskLabel(VSTaskManagerTableModel.LOCAL);
JPanel globalPanel = createTaskLabel(VSTaskManagerTableModel.GLOBAL);
@@ -357,8 +357,8 @@ public class VSSimulation extends VSFrame implements ActionListener {
globalTextField.setBackground(Color.WHITE);
lastSelectedProcessNum = processNum;
- localPIDComboBox.setSelectedIndex(processNum);
- globalPIDComboBox.setSelectedIndex(processNum);
+ localPIDComboBox.setSelectedIndex(processNum);
+ globalPIDComboBox.setSelectedIndex(processNum);
}
});
@@ -470,8 +470,8 @@ public class VSSimulation extends VSFrame implements ActionListener {
public boolean allProcesses;
private VSPriorityQueue<VSTask> tasks;
private String columnNames[];
- private int numColumns;
- private JTable table;
+ private int numColumns;
+ private JTable table;
public VSTaskManagerTableModel(VSProcess process, boolean localTask) {
set(process, localTask, ONE_PROCESS);
@@ -479,31 +479,31 @@ public class VSSimulation extends VSFrame implements ActionListener {
columnNames[0]= prefs.getString("lang.time") + " (ms)";
columnNames[1] = prefs.getString("lang.process.id");
columnNames[2] = prefs.getString("lang.event");
- numColumns = 3;
+ numColumns = 3;
}
- public void setTable(JTable table) {
- this.table = table;
- }
+ public void setTable(JTable table) {
+ this.table = table;
+ }
public void set(VSProcess process, boolean localTasks, boolean allProcesses) {
- this.allProcesses = allProcesses;
-
- if (allProcesses) {
- this.tasks = localTasks
- ? taskManager.getLocalTasks()
- : taskManager.getGlobalTasks();
- } else {
- this.tasks = localTasks
- ? taskManager.getProcessLocalTasks(process)
- : taskManager.getProcessGlobalTasks(process);
- }
+ this.allProcesses = allProcesses;
+
+ if (allProcesses) {
+ this.tasks = localTasks
+ ? taskManager.getLocalTasks()
+ : taskManager.getGlobalTasks();
+ } else {
+ this.tasks = localTasks
+ ? taskManager.getProcessLocalTasks(process)
+ : taskManager.getProcessGlobalTasks(process);
+ }
fireTableDataChanged();
}
public String getColumnName(int col) {
- return columnNames[col];
+ return columnNames[col];
}
public int getRowCount() {
@@ -517,14 +517,14 @@ public class VSSimulation extends VSFrame implements ActionListener {
public Object getValueAt(int row, int col) {
VSTask task = tasks.get(row);
- switch (col) {
- case 0:
- return task.getTaskTime();
- case 1:
- return task.getProcess().getProcessID();
- }
-
- return task.getEvent().getShortname();
+ switch (col) {
+ case 0:
+ return task.getTaskTime();
+ case 1:
+ return task.getProcess().getProcessID();
+ }
+
+ return task.getEvent().getShortname();
}
public boolean isCellEditable(int row, int col) {
@@ -587,7 +587,7 @@ public class VSSimulation extends VSFrame implements ActionListener {
taskManagerGlobalModel = model;
JTable table = new JTable(model);
- model.setTable(table);
+ model.setTable(table);
table.addMouseListener(model);
TableColumn col = table.getColumnModel().getColumn(0);
@@ -621,10 +621,10 @@ public class VSSimulation extends VSFrame implements ActionListener {
panel1.add(new JLabel(" ms "));
- if (localTasks)
- panel1.add(localPIDComboBox);
- else
- panel1.add(globalPIDComboBox);
+ if (localTasks)
+ panel1.add(localPIDComboBox);
+ else
+ panel1.add(globalPIDComboBox);
final JComboBox comboBox = new JComboBox();
JButton takeoverButton = new JButton(prefs.getString("lang.takeover"));
@@ -675,25 +675,25 @@ public class VSSimulation extends VSFrame implements ActionListener {
private boolean takeover(long time) {
VSProcess selectedProcess = getSelectedProcess();
- int index = comboBox.getSelectedIndex();
+ int index = comboBox.getSelectedIndex();
VSCreateTask createTask = createTasks.get(index);
if (createTask == null)
return false;
- ArrayList<VSProcess> processes = getConcernedProcesses(localTasks);
+ ArrayList<VSProcess> processes = getConcernedProcesses(localTasks);
- for (VSProcess process : processes) {
- VSTask task = createTask.createTask(process, time, localTasks);
- taskManager.addTask(task, VSTaskManager.PROGRAMMED);
+ for (VSProcess process : processes) {
+ VSTask task = createTask.createTask(process, time, localTasks);
+ taskManager.addTask(task, VSTaskManager.PROGRAMMED);
- if (process.equals(selectedProcess)) {
- if (localTasks)
- taskManagerLocalModel.addTask(task);
- else
- taskManagerGlobalModel.addTask(task);
- }
- }
+ if (selectedProcess == null || process.equals(selectedProcess)) {
+ if (localTasks)
+ taskManagerLocalModel.addTask(task);
+ else
+ taskManagerGlobalModel.addTask(task);
+ }
+ }
return true;
}
@@ -708,21 +708,22 @@ public class VSSimulation extends VSFrame implements ActionListener {
comboBox.setMaximumRowCount(15);
comboBox.addItem("-- " + prefs.getString("lang.events.process") + " --");
- if (flag)
- createTasks.add(null);
+ if (flag)
+ createTasks.add(null);
for (String eventClassname : eventClassnames) {
String eventShortname = VSRegisteredEvents.getShortname(eventClassname);
comboBox.addItem(eventShortname);
- if (flag)
- createTasks.add(new VSCreateTask(eventClassname));
+ if (flag)
+ createTasks.add(new VSCreateTask(eventClassname));
}
comboBox.addItem("-- " + prefs.getString("lang.requests") + " --");
- if (flag)
- createTasks.add(null);
+ if (flag)
+ createTasks.add(null);
String clientrequest = prefs.getString("lang.clientrequest.start");
+ eventClassnames = VSRegisteredEvents.getProtocolClassnames();
for (String eventClassname : eventClassnames) {
String eventShortname = VSRegisteredEvents.getShortname(eventClassname)
+ " " + clientrequest;
@@ -738,8 +739,8 @@ public class VSSimulation extends VSFrame implements ActionListener {
}
comboBox.addItem("-- " + prefs.getString("lang.events.protocol") + " --");
- if (flag)
- createTasks.add(null);
+ if (flag)
+ createTasks.add(null);
eventClassnames = VSRegisteredEvents.getProtocolClassnames();
String activate = prefs.getString("lang.activate");
@@ -871,39 +872,39 @@ public class VSSimulation extends VSFrame implements ActionListener {
}
private int getSelectedProcessNum() {
- try {
- String string = (String) processesComboBox.getSelectedItem();
- int cutLen = prefs.getString("lang.process").length() + 1;
- string = string.substring(cutLen);
- return Integer.parseInt(string) - 1;
- } catch (NumberFormatException e) {
- }
-
- return simulationPanel.getNumProcesses();
+ try {
+ String string = (String) processesComboBox.getSelectedItem();
+ int cutLen = prefs.getString("lang.process").length() + 1;
+ string = string.substring(cutLen);
+ return Integer.parseInt(string) - 1;
+ } catch (NumberFormatException e) {
+ }
+
+ return simulationPanel.getNumProcesses();
}
private VSProcess getSelectedProcess() {
- int processNum = getSelectedProcessNum();
+ int processNum = getSelectedProcessNum();
return simulationPanel.getProcess(processNum);
}
- private ArrayList<VSProcess> getConcernedProcesses(boolean localTasks) {
- int processNum = localTasks
- ? localPIDComboBox.getSelectedIndex()
- : globalPIDComboBox.getSelectedIndex();
+ private ArrayList<VSProcess> getConcernedProcesses(boolean localTasks) {
+ int processNum = localTasks
+ ? localPIDComboBox.getSelectedIndex()
+ : globalPIDComboBox.getSelectedIndex();
- if (processNum == simulationPanel.getNumProcesses())
- return simulationPanel.getProcessesArray();
+ if (processNum == simulationPanel.getNumProcesses())
+ return simulationPanel.getProcessesArray();
- ArrayList<VSProcess> arr = new ArrayList<VSProcess>();
- arr.add(simulationPanel.getProcess(processNum));
+ ArrayList<VSProcess> arr = new ArrayList<VSProcess>();
+ arr.add(simulationPanel.getProcess(processNum));
- return arr;
- }
+ return arr;
+ }
public void updateTaskManagerTable() {
VSProcess process = getSelectedProcess();
- boolean allProcesses = process == null;
+ boolean allProcesses = process == null;
taskManagerLocalModel.set(process, VSTaskManagerTableModel.LOCAL, allProcesses);
taskManagerGlobalModel.set(process, VSTaskManagerTableModel.GLOBAL, allProcesses);
}
diff --git a/sources/simulator/VSSimulationPanel.java b/sources/simulator/VSSimulationPanel.java
index 49c7bbf..179542c 100644
--- a/sources/simulator/VSSimulationPanel.java
+++ b/sources/simulator/VSSimulationPanel.java
@@ -448,8 +448,8 @@ public class VSSimulationPanel extends JPanel implements Runnable, MouseMotionLi
}
public VSProcess getProcess(int processNum) {
- if (processNum >= processes.size())
- return null;
+ if (processNum >= processes.size())
+ return null;
return processes.get(processNum);
}
@@ -496,7 +496,6 @@ public class VSSimulationPanel extends JPanel implements Runnable, MouseMotionLi
while (!isFinalized && (isPaused || isFinished || isResetted)) {
try {
Thread.sleep(100);
- repaint();
} catch (Exception e) {
System.out.println(e);
}
@@ -562,7 +561,7 @@ public class VSSimulationPanel extends JPanel implements Runnable, MouseMotionLi
for (VSProcess p : processes)
p.reset();
- /* Reset the task manager AFTER the processes, for the programmed tasks */
+ /* Reset the task manager AFTER the processes, for the programmed tasks */
taskManager.reset();
synchronized (messageLines) {
@@ -740,12 +739,12 @@ public class VSSimulationPanel extends JPanel implements Runnable, MouseMotionLi
recalcOnWindowChanged();
}
- public ArrayList<VSProcess> getProcessesArray() {
- ArrayList<VSProcess> arr = new ArrayList<VSProcess>();
+ public ArrayList<VSProcess> getProcessesArray() {
+ ArrayList<VSProcess> arr = new ArrayList<VSProcess>();
- for (VSProcess process : processes)
- arr.add(process);
+ for (VSProcess process : processes)
+ arr.add(process);
- return arr;
- }
+ return arr;
+ }
}