1
2
3
4
5
6
7
8 package org.codehaus.spice.netserve.connection;
9
10 import java.net.ServerSocket;
11 import org.codehaus.spice.netserve.connection.RequestHandler;
12
13 /***
14 * This service is used to manage network acceptors.
15 * The service takes a ServerSocket and RequestHandler and
16 * anytime a new connection is accepted the handler is called
17 * with the new socket connection.
18 *
19 * @author Peter Donald
20 * @version $Revision: 1.2 $ $Date: 2004/03/21 23:43:00 $
21 */
22 public interface SocketAcceptorManager
23 {
24 /***
25 * Start accepting connections from a socket and passing connections
26 * to specified handler.
27 *
28 * @param name the name of connection. This serves as a key used to
29 * shutdown acceptor.
30 * @param socket the ServerSocket from which connections are accepted
31 * @throws java.lang.Exception if unable to initiate connection management. This could
32 * be due to the key already being used for another acceptor,
33 * the serversocket being closed, the handler being null etc.
34 */
35 void connect( String name,
36 ServerSocket socket,
37 RequestHandler handler )
38 throws Exception;
39
40 /***
41 * This shuts down the named acceptor.
42 * NOTE: It is the responsibility of the caller to make
43 * sure that the ServerSocket has been closed.
44 *
45 * @param name the name of connection
46 * @throws java.lang.IllegalArgumentException if no connection with specified name
47 */
48 void disconnect( String name );
49
50 /***
51 * Return true if acceptor with specified name exists.
52 *
53 * @param name the name
54 * @return true if acceptor with specified name exists.
55 */
56 boolean isConnected( String name );
57 }