From 8131638fc01dbde84864656e197b14772ff53346 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 20 May 2008 16:36:49 +0000 Subject: A VSMessage is not a VSEvent any more. Instead a MessageReceiveEvent has been introduced. --- .../implementations/MessageReceiveEvent.java | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 sources/events/implementations/MessageReceiveEvent.java (limited to 'sources/events/implementations/MessageReceiveEvent.java') 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); + } + + } +} -- cgit v1.2.3