protected static void close(TRTrackerServerImpl server) { try { class_mon.enter(); server.closeSupport(); if (servers.remove(server)) { for (int i = 0; i < listeners.size(); i++) { ((TRTrackerServerFactoryListener) listeners.get(i)).serverDestroyed(server); } } } finally { class_mon.exit(); } }
public static void removeListener(TRTrackerServerFactoryListener l) { try { class_mon.enter(); listeners.remove(l); } finally { class_mon.exit(); } }
public static void addListener(TRTrackerServerFactoryListener l) { try { class_mon.enter(); listeners.add(l); Iterator it = servers.iterator(); while (it.hasNext()) { l.serverCreated((TRTrackerServer) it.next()); } } finally { class_mon.exit(); } }
public static TRTrackerServer create( String name, int protocol, int port, InetAddress bind_ip, boolean ssl, boolean apply_ip_filter, boolean main_tracker, boolean start_up_ready) throws TRTrackerServerException { try { class_mon.enter(); TRTrackerServerImpl server; if (protocol == TRTrackerServerFactory.PR_TCP) { if (COConfigurationManager.getBooleanParameter("Tracker TCP NonBlocking") && main_tracker && !ssl) { server = new TRNonBlockingServer( name, port, bind_ip, apply_ip_filter, start_up_ready, new TRNonBlockingServerProcessorFactory() { public TRNonBlockingServerProcessor create( TRTrackerServerTCP _server, SocketChannel _socket) { return (new NonBlockingProcessor(_server, _socket)); } }); } else { server = new TRBlockingServer(name, port, bind_ip, ssl, apply_ip_filter, start_up_ready); } } else if (protocol == TRTrackerServerFactory.PR_UDP) { if (ssl) { throw (new TRTrackerServerException("TRTrackerServerFactory: UDP doesn't support SSL")); } server = new TRTrackerServerUDP(name, port, start_up_ready); } else { server = new TRTrackerServerDHT(name, start_up_ready); } servers.add(server); for (int i = 0; i < listeners.size(); i++) { ((TRTrackerServerFactoryListener) listeners.get(i)).serverCreated(server); } return (server); } finally { class_mon.exit(); } }