From 35c2f2a917de223c658ecc594719edd09bead7cc Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 16 Nov 2024 15:54:22 -0500 Subject: TotalOrderMulticastSender --- .../net/tomulticast/TotalOrderMulticastSender.java | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java (limited to 'src/main/java/derms/net/tomulticast/TotalOrderMulticastSender.java') 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. Only one sender is + * allowed per group. + */ +public class TotalOrderMulticastSender extends TotalOrderMulticast { + /** + * 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 msg = new Message(seq, payload); + sock.send(msg); + incSeq(); + log.info("Sent " + msg + " from " + sock + " to " + group); + } +} -- cgit v1.2.3