summaryrefslogtreecommitdiff
path: root/sources/events/implementations/MessageReceiveEvent.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/events/implementations/MessageReceiveEvent.java')
-rw-r--r--sources/events/implementations/MessageReceiveEvent.java52
1 files changed, 52 insertions, 0 deletions
diff --git a/sources/events/implementations/MessageReceiveEvent.java b/sources/events/implementations/MessageReceiveEvent.java
new file mode 100644
index 0000000..0a99b5f
--- /dev/null
+++ b/sources/events/implementations/MessageReceiveEvent.java
@@ -0,0 +1,52 @@
+package events.implementations;
+
+import core.VSMessage;
+import core.VSProcess;
+import events.VSEvent;
+import protocols.VSProtocol;
+
+public class MessageReceiveEvent extends VSEvent {
+ private VSMessage message;
+
+ public MessageReceiveEvent(VSMessage message) {
+ this.message = message;
+ }
+
+ protected void onInit() {
+ setClassname(getClass().toString());
+ }
+
+ public void onStart() {
+ 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);
+
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(prefs.getString("lang.message.recv"));
+ buffer.append("; ");
+ buffer.append(prefs.getString("lang.protocol"));
+ buffer.append(": " );
+ buffer.append(eventName);
+ buffer.append("; ");
+ buffer.append(prefs.getString("lang.message"));
+ buffer.append(" ");
+ buffer.append(message);;
+
+ if (protocolObj == null) {
+ logg(buffer.toString());
+
+ } else {
+ final VSProtocol protocol = (VSProtocol) protocolObj;
+ logg(buffer.toString());
+ protocol.onMessageRecv(message);
+ }
+
+ }
+}