summaryrefslogtreecommitdiff
path: root/sources/events/internal/VSMessageReceiveEvent.java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-31 02:24:26 +0000
committerPaul Buetow <paul@buetow.org>2008-05-31 02:24:26 +0000
commit2b4c9a57ba522cd8dd01dc1f1d2761b66f97e4f2 (patch)
tree97350ff115f7a3751e028c4959256b7a3627c1fe /sources/events/internal/VSMessageReceiveEvent.java
parent5a41d318c3460beaaeed9d44a1aa3c376956f7b2 (diff)
more elegant way to remove not relevantmessages.
Diffstat (limited to 'sources/events/internal/VSMessageReceiveEvent.java')
-rw-r--r--sources/events/internal/VSMessageReceiveEvent.java32
1 files changed, 22 insertions, 10 deletions
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;
}