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/TotalOrderMulticastSender.java | |
| parent | 05c4e2b5770133228daff7c262945f078a4e4456 (diff) | |
| download | soen423-35c2f2a917de223c658ecc594719edd09bead7cc.zip | |
TotalOrderMulticastSender
Diffstat (limited to 'src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java')
| -rw-r--r-- | src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java b/src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java new file mode 100644 index 0000000..63498a6 --- /dev/null +++ b/src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java @@ -0,0 +1,31 @@ +package derms.net.tomulticast; + +import derms.net.rmulticast.MessagePayload; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.InetSocketAddress; + +/** + * The single sending process in a {@link TotalOrderMulticast} group. <b>Only one sender is + * allowed per group.</b> + */ +public class TotalOrderMulticastSender<T extends MessagePayload> extends TotalOrderMulticast<T> { + /** + * Join the specified totally-ordered multicast group as its lone sender. + * + * @param group The IP address and port of the multicast group to join. + * @param laddr The IP address of the local process. + */ + public TotalOrderMulticastSender(InetSocketAddress group, InetAddress laddr) throws IOException { + super(group, laddr); + } + + /** Send a message to the group. */ + public void send(T payload) throws IOException { + Message<T> msg = new Message<T>(seq, payload); + sock.send(msg); + incSeq(); + log.info("Sent " + msg + " from " + sock + " to " + group); + } +} |