diff options
Diffstat (limited to 'sources/events/internal/VSMessageReceiveEvent.java')
| -rw-r--r-- | sources/events/internal/VSMessageReceiveEvent.java | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/sources/events/internal/VSMessageReceiveEvent.java b/sources/events/internal/VSMessageReceiveEvent.java new file mode 100644 index 0000000..ff97010 --- /dev/null +++ b/sources/events/internal/VSMessageReceiveEvent.java @@ -0,0 +1,66 @@ +/* + * VS is (c) 2008 by Paul C. Buetow + * vs@dev.buetow.org + */ +package events.internal; + +import core.VSMessage; +import events.VSAbstractEvent; +import protocols.VSAbstractProtocol; + +/** + * The Class VSMessageReceiveEvent. + */ +public class VSMessageReceiveEvent extends VSAbstractEvent { + private static final long serialVersionUID = 1L; + + /** The message. */ + private VSMessage message; + + /** + * Instantiates a new message receive event. + * + * @param message the message + */ + public VSMessageReceiveEvent(VSMessage message) { + this.message = message; + } + + /* (non-Javadoc) + * @see events.VSAbstractEvent#onInit() + */ + public void onInit() { + setClassname(getClass().toString()); + } + + /* (non-Javadoc) + * @see events.VSAbstractEvent#onStart() + */ + 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(message);; + + if (protocolObj == null) { + logg(buffer.toString()); + + } else { + final VSAbstractProtocol protocol = (VSAbstractProtocol) protocolObj; + logg(buffer.toString()); + protocol.onMessageRecvStart(message); + } + + } +} |
