diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-11-16 15:54:22 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-11-16 15:54:22 -0500 |
| commit | 35c2f2a917de223c658ecc594719edd09bead7cc (patch) | |
| tree | 6568546cf457758dca4fee06a391f7f43130d835 /src/main/java/derms/net/tomulticast/Message.java | |
| parent | 05c4e2b5770133228daff7c262945f078a4e4456 (diff) | |
| download | soen423-35c2f2a917de223c658ecc594719edd09bead7cc.zip | |
TotalOrderMulticastSender
Diffstat (limited to 'src/main/java/derms/net/tomulticast/Message.java')
| -rw-r--r-- | src/main/java/derms/net/tomulticast/Message.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/main/java/derms/net/tomulticast/Message.java b/src/main/java/derms/net/tomulticast/Message.java new file mode 100644 index 0000000..035e968 --- /dev/null +++ b/src/main/java/derms/net/tomulticast/Message.java @@ -0,0 +1,40 @@ +package derms.net.tomulticast; + +import derms.net.rmulticast.MessagePayload; + +class Message<T extends MessagePayload> implements MessagePayload { + long seq; // Sequence number. + T payload; + + Message(long seq, T payload) { + this.seq = seq; + this.payload = payload; + } + + @Override + public int hash() { + return (int) seq * payload.hash(); + } + + @Override + public int hashCode() { + return hash(); + } + + @Override + public boolean equals(Object obj) { + if (obj == null) + return false; + if (obj.getClass() != this.getClass()) + return false; + Message<?> other = (Message<?>) obj; + if (other.payload.getClass() != this.payload.getClass()) + return false; + return other.seq == this.seq && other.hash() == this.hash(); + } + + @Override + public String toString() { + return getClass().getSimpleName() + "{" + seq + ", " + payload + "}"; + } +} |