diff options
| author | Paul Buetow <paul@buetow.org> | 2008-05-29 13:55:34 +0000 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2008-05-29 13:55:34 +0000 |
| commit | b8f2687296ad47626412e2a54f4916f7fabc4d6d (patch) | |
| tree | 247757bbb960ddceb5adefe89df2fd8115107bfc /sources/events/internal/VSMessageReceiveEvent.java | |
| parent | cd2024527c84e3e0fd22072a16ac1ff18e6d406d (diff) | |
Only relevant message delivering works.
Diffstat (limited to 'sources/events/internal/VSMessageReceiveEvent.java')
| -rw-r--r-- | sources/events/internal/VSMessageReceiveEvent.java | 32 |
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; } } |
