From 95168958f2b6eaa23281b5920b9641cb73c3606a Mon Sep 17 00:00:00 2001 From: TJ Date: Mon, 4 May 2015 16:38:00 +0100 Subject: [PATCH] ServerManagement: become owner of ServiceAddressMap ServiceAddressMap is now application-wide so all network service daemons use the same map. Refactor variable names to better reflect their purpose ("Server" > "Service"). --- .../wsyd/management/ServerManagement.java | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/uk/ac/ntu/n0521366/wsyd/management/ServerManagement.java b/src/uk/ac/ntu/n0521366/wsyd/management/ServerManagement.java index 575d2ed..2fb2938 100644 --- a/src/uk/ac/ntu/n0521366/wsyd/management/ServerManagement.java +++ b/src/uk/ac/ntu/n0521366/wsyd/management/ServerManagement.java @@ -53,7 +53,7 @@ import uk.ac.ntu.n0521366.wsyd.libs.message.MessagePresence; import uk.ac.ntu.n0521366.wsyd.libs.message.MessageServerControl; import uk.ac.ntu.n0521366.wsyd.libs.net.WSYD_SocketAddress.Protocol; import uk.ac.ntu.n0521366.wsyd.libs.net.*; - +import uk.ac.ntu.n0521366.wsyd.libs.net.ServiceAddressMap.LastSeenHost; /** * * @author TJ @@ -74,11 +74,15 @@ public class ServerManagement extends javax.swing.JFrame implements NetworkMessa */ final String _title = "ServerManagement"; + /** + * Network services to address map. + */ ServiceAddressMap _serviceToAddressMap; + /** * The UDP listener address for incoming log messages */ - WSYD_SocketAddress _logServerSA = null; + WSYD_SocketAddress _udpLogServiceSA = null; /** * UDP multi-cast presence advertiser @@ -88,7 +92,7 @@ public class ServerManagement extends javax.swing.JFrame implements NetworkMessa /** * Log service running in a SwingWorker thread. */ - NetworkServerUDP _logServer = null; + NetworkServerUDP _udpLogService = null; /** * Multi-cast neighbour advertise and discover service in a SwingWorker thread. @@ -158,16 +162,18 @@ public class ServerManagement extends javax.swing.JFrame implements NetworkMessa LOGGER.setUseParentHandlers(false); // don't send messages to the default error stream logger of the parent LOGGER.log(Level.INFO, "Server Management starting"); - _logServerSA = new WSYD_SocketAddress(Network.PORTS_SERVER_LOG, Protocol.UDP); - _logServer = new NetworkServerUDP(_logServerSA, _title, _serviceToAddressMap, LOGGER); - _logServer.addNetworkMessageEventListener(this, "Log"); - _logServer.setSimulate(false); - _logServer.execute(); + _udpLogServiceSA = new WSYD_SocketAddress(Network.PORTS_SERVER_LOG, Protocol.UDP); + _udpLogService = new NetworkServerUDP(_udpLogServiceSA, _title + "Log", _serviceToAddressMap, LOGGER); + _udpLogService.addNetworkMessageEventListener(this, "Log"); + _udpLogService.setSimulate(false); + _udpLogService.execute(); _multicastAdvertiserSA = new WSYD_SocketAddress(Network.MULTICAST_IP, Network.PORTS_MULTICAST_DISCOVERY, Protocol.UDP); - _multicastServer = new NetworkServerUDPMulticast(_multicastAdvertiserSA, "ServerManagementMC", _serviceToAddressMap, LOGGER); + _multicastServer = new NetworkServerUDPMulticast(_multicastAdvertiserSA, _title + "MC", _serviceToAddressMap, LOGGER); _multicastServer.addNetworkMessageEventListener(this, "Neighbour"); _multicastServer.execute(); + // permit broadcasting to pseudo-host 'all' since this is multicast + _serviceToAddressMap.put("all", new LastSeenHost(new InetSocketAddress(Network.MULTICAST_IP, Network.PORTS_MULTICAST_DISCOVERY), LastSeenHost.STATE.STATIC)); if (this._multicastAnnouncements) { ActionListener multicastAnnounceActionListener = new ActionListener() { @@ -186,9 +192,9 @@ public class ServerManagement extends javax.swing.JFrame implements NetworkMessa LOGGER.log(record); // Announce the Log Server service - MessagePresence mp = new MessagePresence("ServerLog", Network.PORTS_SERVER_LOG); + MessagePresence mp = new MessagePresence(_title + "Log", _udpLogService.getSocketAddress()); NetworkMessage nm = NetworkMessage.createNetworkMessage("Neighbour", "all", mp); - nm.setSender("ServerLog"); + nm.setSender(_title + "Log"); _multicastServer.queueMessage(nm); // clean up the known hosts map and keep Server menu up-to-date -- 2.17.1