summaryrefslogtreecommitdiff
path: root/sources/events/internal
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
parentcd2024527c84e3e0fd22072a16ac1ff18e6d406d (diff)
Only relevant message delivering works.
Diffstat (limited to 'sources/events/internal')
-rw-r--r--sources/events/internal/VSMessageReceiveEvent.java32
-rw-r--r--sources/events/internal/VSProtocolEvent.java19
-rw-r--r--sources/events/internal/VSProtocolScheduleEvent.java4
3 files changed, 37 insertions, 18 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;
}
}
diff --git a/sources/events/internal/VSProtocolEvent.java b/sources/events/internal/VSProtocolEvent.java
index d5051f3..8b65c79 100644
--- a/sources/events/internal/VSProtocolEvent.java
+++ b/sources/events/internal/VSProtocolEvent.java
@@ -77,8 +77,9 @@ public class VSProtocolEvent extends VSAbstractEvent {
/* (non-Javadoc)
* @see events.VSAbstractEvent#onStart()
*/
- public void onStart() {
- VSAbstractProtocol protocol = process.getProtocolObject(protocolClassname);
+ public boolean onStart() {
+ VSAbstractProtocol protocol = process.getProtocolObject(
+ protocolClassname);
if (isClientProtocol)
protocol.isClient(isProtocolActivation);
@@ -87,13 +88,21 @@ public class VSProtocolEvent extends VSAbstractEvent {
protocol.isServer(isProtocolActivation);
StringBuffer buffer = new StringBuffer();
- buffer.append(VSRegisteredEvents.getShortnameByClassname(protocolClassname));
+ buffer.append(VSRegisteredEvents.getShortnameByClassname(
+ protocolClassname));
+
buffer.append(" ");
buffer.append(isClientProtocol
- ? prefs.getString("lang.client") : prefs.getString("lang.server"));
+ ? prefs.getString("lang.client")
+ : prefs.getString("lang.server"));
+
buffer.append(" ");
buffer.append(isProtocolActivation
- ? prefs.getString("lang.activated") : prefs.getString("lang.deactivated"));
+ ? prefs.getString("lang.activated")
+ : prefs.getString("lang.deactivated"));
+
logg(buffer.toString());
+
+ return true;
}
}
diff --git a/sources/events/internal/VSProtocolScheduleEvent.java b/sources/events/internal/VSProtocolScheduleEvent.java
index 9b6e664..9c72124 100644
--- a/sources/events/internal/VSProtocolScheduleEvent.java
+++ b/sources/events/internal/VSProtocolScheduleEvent.java
@@ -76,10 +76,12 @@ public class VSProtocolScheduleEvent extends VSAbstractEvent {
/* (non-Javadoc)
* @see events.VSAbstractEvent#onStart()
*/
- public void onStart() {
+ public boolean onStart() {
if (isServerSchedule)
protocol.onServerScheduleStart();
else
protocol.onClientScheduleStart();
+
+ return true;
}
}