diff options
Diffstat (limited to 'sources/core/VSMessage.java')
| -rw-r--r-- | sources/core/VSMessage.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/sources/core/VSMessage.java b/sources/core/VSMessage.java index 8ecba27..05c9e6a 100644 --- a/sources/core/VSMessage.java +++ b/sources/core/VSMessage.java @@ -4,20 +4,45 @@ import core.time.*; import events.*; import prefs.VSPrefs; +/** This class represents a message which is send from one process to another process in the simulation. + */ public class VSMessage extends VSPrefs { + /** Each message belongs to a specific protocol. This variable defined the class name of the protocol being used. + */ private String protocolClassname; + /** The default application preferences. + */ private VSPrefs prefs; + /** A reference to the process who sent this message. + */ private VSProcess sendingProcess; + /** The vector time of the sending process after sending. The receiver process will use this vector time in order to update the local vector time. + */ private VSVectorTime vectorTime; + /** The lamport time of the sending process after sending. The receiver process will use this lamport time in order to update the local vector time. + */ private long lamportTime; + /** Each message has its own unique ID. The ID will show up in the logging window of the simulator as well. + */ private long messageID; + /** This counter is used in order to generate unique message ID's. + */ private static long messageCounter; + /** The constructor of the message. + * + * @param protocolClassname The classname of the protocol this message + * belongs to. + */ public VSMessage(String protocolClassname) { this.protocolClassname = protocolClassname; this.messageID = ++messageCounter; } + /** Initialized the message. + * + * @param process The sending process of this message. + */ public void init(VSProcess process) { this.sendingProcess = process; this.prefs = process.getPrefs(); @@ -25,30 +50,59 @@ public class VSMessage extends VSPrefs { vectorTime = sendingProcess.getVectorTime().getCopy(); } + /** + * Getter method. + * + * @return The protocol name of the message. + */ public String getName() { return VSRegisteredEvents.getName(getProtocolClassname()); } + /** Getter method. + * + * @return The protocol classname of the message. + */ public String getProtocolClassname() { return protocolClassname; } + /** Getter method. + * + * @return The ID of the message. + */ public long getMessageID() { return messageID; } + /** Getter method. + * + * @return The process which sent this message. + */ public VSProcess getSendingProcess() { return sendingProcess; } + /** Getter method. + * + * @return The lamport time of the sending process. + */ public long getLamportTime() { return lamportTime; } + /** Getter method. + * + * @return The vector time of the sending process. + */ public VSVectorTime getVectorTime() { return vectorTime; } + /** String representation of the message object. + * + * @return String representation of the message object. + */ public String toString() { StringBuffer buffer = new StringBuffer(); @@ -62,14 +116,27 @@ public class VSMessage extends VSPrefs { return buffer.toString(); } + /** Extended string representation of the message object. + * + * @return Extended string representation of the message object. + */ public String toStringFull() { return toString() + "; " + super.toString(); } + /** Compares two messages. + * + * @param message The message to compare with. + * @return true, if the messages have the same ID. Otherwise false. + */ public boolean equals(VSMessage message) { return messageID == message.getMessageID(); } + /** For logging in the simulator's logging window! + * + * @param message The message to logg. + */ public void logg(String message) { } } |
