summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/net/rmulticast/Message.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/derms/net/rmulticast/Message.java')
-rw-r--r--src/main/java/derms/net/rmulticast/Message.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/derms/net/rmulticast/Message.java b/src/main/java/derms/net/rmulticast/Message.java
new file mode 100644
index 0000000..6df283e
--- /dev/null
+++ b/src/main/java/derms/net/rmulticast/Message.java
@@ -0,0 +1,27 @@
+package derms.net.rmulticast;
+
+import java.io.Serializable;
+import java.net.InetAddress;
+
+class Message<T extends Serializable & Hashable> implements Serializable {
+ T payload;
+ InetAddress sender;
+ MessageID[] positiveAcks; // IDs of messages that this message positively acknowledges.
+ MessageID[] negativeAcks; // IDs of messages that this message negatively acknowledges.
+
+ Message(T payload, InetAddress sender, MessageID[] positiveAcks, MessageID[] negativeAcks) {
+ this.payload = payload;
+ this.sender = sender;
+ this.positiveAcks = positiveAcks;
+ this.negativeAcks = negativeAcks;
+ }
+
+ MessageID id() {
+ return new MessageID(hashCode());
+ }
+
+ @Override
+ public int hashCode() {
+ return payload.hash();
+ }
+}