summaryrefslogtreecommitdiff
path: root/sources/core
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-18 15:13:30 +0000
committerPaul Buetow <paul@buetow.org>2008-05-18 15:13:30 +0000
commitc46ed2242876bfb267ed0b6823c8a3e99ac62dd6 (patch)
tree279f9dfd1a9fcc8f91ced6b80ba7e8878ee13b92 /sources/core
parent34595bc248660a6cd9c51f2b7a18ed33ae31cce4 (diff)
TaskManager better.
Diffstat (limited to 'sources/core')
-rw-r--r--sources/core/VSTask.java60
-rw-r--r--sources/core/VSTaskManager.java30
2 files changed, 78 insertions, 12 deletions
diff --git a/sources/core/VSTask.java b/sources/core/VSTask.java
index 7ebf4d5..7787373 100644
--- a/sources/core/VSTask.java
+++ b/sources/core/VSTask.java
@@ -1,6 +1,7 @@
package core;
import events.*;
+import events.implementations.*;
import prefs.VSPrefs;
import protocols.VSProtocol;
import simulator.*;
@@ -42,6 +43,10 @@ public class VSTask implements Comparable {
return false;
}
+ public boolean isProcess(VSProcess process) {
+ return this.process.equals(process);
+ }
+
public boolean isGlobalTimed() {
if (event instanceof VSProtocol)
return false;
@@ -94,16 +99,23 @@ public class VSTask implements Comparable {
else
protocolObj = null;
- String loggVSMessage = prefs.getString("lang.message.recv")
- + "; " + prefs.getString("lang.protocol") + ": " + protocolName
- + "; " + prefs.getString("lang.message") + " " + message;
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(prefs.getString("lang.message.recv"));
+ buffer.append("; ");
+ buffer.append(prefs.getString("lang.protocol"));
+ buffer.append(": " );
+ buffer.append(protocolName);
+ buffer.append("; ");
+ buffer.append(prefs.getString("lang.message"));
+ buffer.append(" ");
+ buffer.append(message);;
if (protocolObj == null) {
- logg(loggVSMessage);
+ logg(buffer.toString());
} else {
final VSProtocol protocol = (VSProtocol) protocolObj;
- logg(loggVSMessage);
+ logg(buffer.toString());
protocol.onMessageRecv(message);
}
}
@@ -129,16 +141,42 @@ public class VSTask implements Comparable {
process.logg(message);
}
+ public String toStringBrief() {
+ StringBuffer buffer = new StringBuffer();
+ if (event instanceof ProcessCrashEvent) {
+ buffer.append(prefs.getString("process.crash"));
+
+ } else if (event instanceof ProcessRecoverEvent) {
+ buffer.append(prefs.getString("process.recover"));
+
+ } else if (event instanceof VSProtocol) {
+ buffer.append(((VSProtocol) event).getProtocolShortname());
+ buffer.append(" ");
+ buffer.append(prefs.getString("lang.clientrequest.start"));
+
+ } else {
+ buffer.append("null");
+ }
+
+ return buffer.toString();
+ }
+
public String toString() {
- String descr = "VSTask: " + getTaskTime();
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(prefs.getString("lang.task"));
+ buffer.append(" ");
+ buffer.append(getTaskTime());
- if (event instanceof VSMessage)
- descr += (VSMessage) event;
+ if (event instanceof VSMessage) {
+ buffer.append("; ");
+ buffer.append(((VSMessage)event).toString());
- else if (event instanceof VSProtocol)
- descr += (VSProtocol) event;
+ } else if (event instanceof VSProtocol) {
+ buffer.append("; ");
+ buffer.append(((VSProtocol)event).toString());
+ }
- return descr;
+ return buffer.toString();
}
public int compareTo(Object object) {
diff --git a/sources/core/VSTaskManager.java b/sources/core/VSTaskManager.java
index 474bc45..19935df 100644
--- a/sources/core/VSTaskManager.java
+++ b/sources/core/VSTaskManager.java
@@ -35,7 +35,7 @@ public class VSTaskManager {
};
}
- public synchronized void runVSTasks(final long step, final long offset, final long lastGlobalTime) {
+ public synchronized void runTasks(final long step, final long offset, final long lastGlobalTime) {
VSTask task = null;
VSProcess process = null;
long localTime;
@@ -265,6 +265,34 @@ public class VSTaskManager {
}
}
+ public synchronized ArrayList<VSTask> getProcessLocalTasks(VSProcess process) {
+ ArrayList<VSTask> processTasks = new ArrayList<VSTask>();
+
+ for (VSTask task : fullfilledProgrammedTasks)
+ if (!task.isGlobalTimed() && task.isProcess(process))
+ processTasks.add(task);
+
+ for (VSTask task : tasks)
+ if (task.isProcess(process))
+ processTasks.add(task);
+
+ return processTasks;
+ }
+
+ public synchronized ArrayList<VSTask> getProcessGlobalTasks(VSProcess process) {
+ ArrayList<VSTask> processTasks = new ArrayList<VSTask>();
+
+ for (VSTask task : fullfilledProgrammedTasks)
+ if (task.isGlobalTimed() && task.isProcess(process))
+ processTasks.add(task);
+
+ for (VSTask task : globalTasks)
+ if (task.isProcess(process))
+ processTasks.add(task);
+
+ return processTasks;
+ }
+
public String toString() {
StringBuffer buffer = new StringBuffer();