Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/apache/http/HttpConnection.java


1   /*
2    * $HeadURL: https://svn.apache.org/repos/asf/jakarta/httpcomponents/httpcore/tags/4.0-alpha2/src/java/org/apache/http/HttpConnection.java $
3    * $Revision: 391135 $
4    * $Date: 2006-04-03 22:15:40 +0200 (Mon, 03 Apr 2006) $
5    *
6    * ====================================================================
7    *
8    *  Copyright 1999-2006 The Apache Software Foundation
9    *
10   *  Licensed under the Apache License, Version 2.0 (the "License");
11   *  you may not use this file except in compliance with the License.
12   *  You may obtain a copy of the License at
13   *
14   *      http://www.apache.org/licenses/LICENSE-2.0
15   *
16   *  Unless required by applicable law or agreed to in writing, software
17   *  distributed under the License is distributed on an "AS IS" BASIS,
18   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19   *  See the License for the specific language governing permissions and
20   *  limitations under the License.
21   * ====================================================================
22   *
23   * This software consists of voluntary contributions made by many
24   * individuals on behalf of the Apache Software Foundation.  For more
25   * information on the Apache Software Foundation, please see
26   * <http://www.apache.org/>.
27   *
28   */
29  
30  package org.apache.http;
31  
32  import java.io.IOException;
33  
34  /**
35   * A generic HTTP connection, useful on client and server side.
36   *
37   * @author <a href="mailto:oleg at ural.ru">Oleg Kalnichevski</a>
38   *
39   * @version $Revision: 391135 $
40   * 
41   * @since 4.0
42   */
43  public interface HttpConnection {
44  
45      /**
46       * This method will gracefully close the connection. It will attempt to 
47       * flush the transmitter's internal buffer prior to closing the underlying 
48       * socket. This method MAY NOT be called from a different thread to force 
49       * shutdown the connection. Use #shutdown() instead.
50       * 
51       * @see #shutdown()
52       */
53      void close() throws IOException;
54      
55      /**
56       * Checks if this connection is open.
57       * @return true if it is open, false if it is closed.
58       */
59      boolean isOpen();
60   
61      /**
62       * Network connections may get closed during some time of inactivity for several reasons.
63       * The next time a read is attempted on such a connection it will throw an IOException.
64       * This method tries to alleviate this inconvenience by trying to find out if a connection is still
65       * usable. Implementations may do that by attempting a read with a very small timeout. Thus this
66       * method may block for a small indefinite time before returning a result. 
67       * 
68       * @return true if attempts to use this connection are likely to succeed, false if they are likely
69       * to fail and this connection should be closed and discarded.
70       */
71      boolean isStale();
72      
73      /**
74       * This method will force close the connection. This is the only method, 
75       * which may be called from a different thread to terminate the connection. 
76       * This method will not attempt to flush the transmitter's internal buffer 
77       * prior to closing the underlying socket.
78       */
79      void shutdown() throws IOException;
80  }