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.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/sources/core/VSMessage.java b/sources/core/VSMessage.java
new file mode 100644
index 0000000..b3c1d31
--- /dev/null
+++ b/sources/core/VSMessage.java
@@ -0,0 +1,56 @@
+package core;
+
+import prefs.VSPrefs;
+import protocols.*;
+import events.VSEvent;
+
+public class VSMessage extends VSPrefs implements VSEvent {
+ private String protocolClassname;
+ private VSProcess sendingProcess;
+ private long messageID;
+ private static long messageCounter;
+ private long lamportTime;
+
+ public VSMessage(String protocolClassname) {
+ this.protocolClassname = protocolClassname;
+ this.messageID = ++messageCounter;
+ }
+
+ public String getProtocolName() {
+ return RegisteredProtocols.getProtocolName(getProtocolClassname());
+ }
+
+ public String getProtocolClassname() {
+ return protocolClassname;
+ }
+
+ public long getMessageID() {
+ return messageID;
+ }
+
+ public void setSendingProcess(VSProcess sendingProcess) {
+ this.sendingProcess = sendingProcess;
+ lamportTime = sendingProcess.getLamportTime();
+ }
+
+ public VSProcess getSendingProcess() {
+ return sendingProcess;
+ }
+
+ public long getLamportTime() {
+ return lamportTime;
+ }
+
+ public String toString() {
+ return "ID: " + messageID;
+ }
+
+ public String toStringFull() {
+ return toString() + "; " + super.toString();
+ }
+
+ public boolean equals(VSMessage message) {
+ return messageID == message.getMessageID();
+ }
+}
+