diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-31 02:24:26 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-31 02:24:26 +0000 |
| commit | 2b4c9a57ba522cd8dd01dc1f1d2761b66f97e4f2 (patch) | |
| tree | 97350ff115f7a3751e028c4959256b7a3627c1fe /sources/events | |
| parent | 5a41d318c3460beaaeed9d44a1aa3c376956f7b2 (diff) | |
more elegant way to remove not relevantmessages.
Diffstat (limited to 'sources/events')
6 files changed, 32 insertions, 30 deletions
diff --git a/sources/events/VSAbstractEvent.java b/sources/events/VSAbstractEvent.java index 146c428..15b742f 100644 --- a/sources/events/VSAbstractEvent.java +++ b/sources/events/VSAbstractEvent.java @@ -55,10 +55,11 @@ abstract public class VSAbstractEvent extends VSPrefs { * @param process the process */ public void init(VSProcess process) { - this.process = process; - this.prefs = process.getPrefs(); - - init(); + if (this.process == null) { + this.process = process; + this.prefs = process.getPrefs(); + init(); + } } /** @@ -157,9 +158,6 @@ abstract public class VSAbstractEvent extends VSPrefs { /** * Every event can get started. This method get's executed if the event * takes place. - * - * @return false, if a message has been delivered but is not relevant and - * can get removed from the simulator canvas paint area. true otherwise. */ - abstract public boolean onStart(); + abstract public void onStart(); } diff --git a/sources/events/implementations/VSProcessCrashEvent.java b/sources/events/implementations/VSProcessCrashEvent.java index 4a49942..c281500 100644 --- a/sources/events/implementations/VSProcessCrashEvent.java +++ b/sources/events/implementations/VSProcessCrashEvent.java @@ -44,12 +44,10 @@ public class VSProcessCrashEvent extends VSAbstractEvent { /* (non-Javadoc) * @see events.VSAbstractEvent#onStart() */ - public boolean onStart() { + public void onStart() { if (!process.isCrashed()) { process.isCrashed(true); logg(prefs.getString("lang.crashed")); } - - return true; } } diff --git a/sources/events/implementations/VSProcessRecoverEvent.java b/sources/events/implementations/VSProcessRecoverEvent.java index 0c0ddb9..43479cf 100644 --- a/sources/events/implementations/VSProcessRecoverEvent.java +++ b/sources/events/implementations/VSProcessRecoverEvent.java @@ -45,12 +45,10 @@ public class VSProcessRecoverEvent extends VSAbstractEvent { /* (non-Javadoc) * @see events.VSAbstractEvent#onStart() */ - public boolean onStart() { + public void onStart() { if (process.isCrashed()) { process.isCrashed(false); logg(prefs.getString("lang.recovered")); } - - return true; } } diff --git a/sources/events/internal/VSMessageReceiveEvent.java b/sources/events/internal/VSMessageReceiveEvent.java index d53d019..0cffa86 100644 --- a/sources/events/internal/VSMessageReceiveEvent.java +++ b/sources/events/internal/VSMessageReceiveEvent.java @@ -59,27 +59,21 @@ public class VSMessageReceiveEvent extends VSAbstractEvent { /* (non-Javadoc) * @see events.VSAbstractEvent#onStart() */ - public boolean onStart() { - boolean returnValue = true; + public void onStart() { boolean onlyRelevantMessages = process.getPrefs().getBoolean( "sim.messages.relevant"); String eventName = message.getName(); String protocolClassname = message.getProtocolClassname(); + if (onlyRelevantMessages && !isRelevantMessage()) + return; + Object protocolObj = null; if (process.objectExists(protocolClassname)) protocolObj = process.getObject(protocolClassname); - if (onlyRelevantMessages) { - if (protocolObj == null) - return false; - - if (!((VSAbstractProtocol) protocolObj).isRelevantMessage(message)) - return false; - } - process.updateLamportTime(message.getLamportTime()+1); process.updateVectorTime(message.getVectorTime()); @@ -91,6 +85,24 @@ public class VSMessageReceiveEvent extends VSAbstractEvent { if (protocolObj != null) ((VSAbstractProtocol) protocolObj).onMessageRecvStart(message); + } + + /** + * Checks if the message delivering is relevant. + * + * @return true, if relevant + */ + public boolean isRelevantMessage() { + String protocolClassname = message.getProtocolClassname(); + Object protocolObj = null; + + if (process.objectExists(protocolClassname)) + protocolObj = process.getObject(protocolClassname); + else + return false; + + if (!((VSAbstractProtocol) protocolObj).isRelevantMessage(message)) + return false; return true; } diff --git a/sources/events/internal/VSProtocolEvent.java b/sources/events/internal/VSProtocolEvent.java index d3efcb2..cfb1e35 100644 --- a/sources/events/internal/VSProtocolEvent.java +++ b/sources/events/internal/VSProtocolEvent.java @@ -107,7 +107,7 @@ public class VSProtocolEvent extends VSAbstractEvent { /* (non-Javadoc) * @see events.VSAbstractEvent#onStart() */ - public boolean onStart() { + public void onStart() { VSAbstractProtocol protocol = process.getProtocolObject(protocolClassname); @@ -131,7 +131,5 @@ public class VSProtocolEvent extends VSAbstractEvent { : prefs.getString("lang.deactivated")); logg(buffer.toString()); - - return true; } } diff --git a/sources/events/internal/VSProtocolScheduleEvent.java b/sources/events/internal/VSProtocolScheduleEvent.java index 3bbac19..912b552 100644 --- a/sources/events/internal/VSProtocolScheduleEvent.java +++ b/sources/events/internal/VSProtocolScheduleEvent.java @@ -104,12 +104,10 @@ public class VSProtocolScheduleEvent extends VSAbstractEvent { /* (non-Javadoc) * @see events.VSAbstractEvent#onStart() */ - public boolean onStart() { + public void onStart() { if (isServerSchedule) protocol.onServerScheduleStart(); else protocol.onClientScheduleStart(); - - return true; } } |
