summaryrefslogtreecommitdiff
path: root/sources/events/internal/VSMessageReceiveEvent.java
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-05-29 13:55:34 +0000
committerPaul Buetow <paul@buetow.org>2008-05-29 13:55:34 +0000
commitb8f2687296ad47626412e2a54f4916f7fabc4d6d (patch)
tree247757bbb960ddceb5adefe89df2fd8115107bfc /sources/events/internal/VSMessageReceiveEvent.java
parentcd2024527c84e3e0fd22072a16ac1ff18e6d406d (diff)
Only relevant message delivering works.
Diffstat (limited to 'sources/events/internal/VSMessageReceiveEvent.java')
-rw-r--r--sources/events/internal/VSMessageReceiveEvent.java32
1 files changed, 20 insertions, 12 deletions
diff --git a/sources/events/internal/VSMessageReceiveEvent.java b/sources/events/internal/VSMessageReceiveEvent.java
index ff97010..0012775 100644
--- a/sources/events/internal/VSMessageReceiveEvent.java
+++ b/sources/events/internal/VSMessageReceiveEvent.java
@@ -36,31 +36,39 @@ public class VSMessageReceiveEvent extends VSAbstractEvent {
/* (non-Javadoc)
* @see events.VSAbstractEvent#onStart()
*/
- public void onStart() {
+ public boolean onStart() {
+ boolean returnValue = true;
+ boolean onlyRelevantMessages = process.getPrefs().
+ getBoolean("sim.messages.relevant");
+
String eventName = message.getName();
String protocolClassname = message.getProtocolClassname();
- process.updateLamportTime(message.getLamportTime()+1);
- process.updateVectorTime(message.getVectorTime());
-
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());
+
StringBuffer buffer = new StringBuffer();
buffer.append(prefs.getString("lang.message.recv"));
buffer.append("; ");
buffer.append(message);;
+ logg(buffer.toString());
- if (protocolObj == null) {
- logg(buffer.toString());
-
- } else {
- final VSAbstractProtocol protocol = (VSAbstractProtocol) protocolObj;
- logg(buffer.toString());
- protocol.onMessageRecvStart(message);
- }
+ if (protocolObj != null)
+ ((VSAbstractProtocol) protocolObj).onMessageRecvStart(message);
+ return true;
}
}