diff options
Diffstat (limited to 'src/main/java/derms/net/rmulticast/Message.java')
| -rw-r--r-- | src/main/java/derms/net/rmulticast/Message.java | 27 |
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(); + } +} |