summaryrefslogtreecommitdiff
path: root/sources/core/VSMessage.java
diff options
context:
space:
mode:
Diffstat (limited to 'sources/core/VSMessage.java')
-rw-r--r--sources/core/VSMessage.java67
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) { }
}