01: /*
02: * Copyright 1999-2004 The Apache Software Foundation
03: *
04: * Licensed under the Apache License, Version 2.0 (the "License");
05: * you may not use this file except in compliance with the License.
06: * You may obtain a copy of the License at
07: *
08: * http://www.apache.org/licenses/LICENSE-2.0
09: *
10: * Unless required by applicable law or agreed to in writing, software
11: * distributed under the License is distributed on an "AS IS" BASIS,
12: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13: * See the License for the specific language governing permissions and
14: * limitations under the License.
15: */
16:
17: package org.apache.tomcat.util.net;
18:
19: /**
20: * This interface will be implemented by any object that
21: * uses TcpConnections. It is supported by the pool tcp
22: * connection manager and should be supported by future
23: * managers.
24: * The goal is to decouple the connection handler from
25: * the thread, socket and pooling complexity.
26: */
27: public interface TcpConnectionHandler {
28:
29: /** Add informations about the a "controler" object
30: * specific to the server. In tomcat it will be a
31: * ContextManager.
32: * @deprecated This has nothing to do with TcpHandling,
33: * was used as a workaround
34: */
35: public void setServer(Object manager);
36:
37: /** Used to pass config informations to the handler
38: * @deprecated. This has nothing to do with Tcp,
39: * was used as a workaround
40: */
41: public void setAttribute(String name, Object value);
42:
43: /** Called before the call to processConnection.
44: * If the thread is reused, init() should be called once per thread.
45: *
46: * It may look strange, but it's a _very_ good way to avoid synchronized
47: * methods and keep per thread data.
48: *
49: * Assert: the object returned from init() will be passed to
50: * all processConnection() methods happening in the same thread.
51: *
52: */
53: public Object[] init();
54:
55: /**
56: * Assert: connection!=null
57: * Assert: connection.getSocket() != null
58: * Assert: thData != null and is the result of calling init()
59: * Assert: thData is preserved per Thread.
60: */
61: public void processConnection(TcpConnection connection,
62: Object thData[]);
63: }
|