Class BHttpConnectionBase

java.lang.Object
org.apache.hc.core5.http.impl.io.BHttpConnectionBase
All Implemented Interfaces:
Closeable, AutoCloseable, HttpConnection, BHttpConnection, SocketModalCloseable, ModalCloseable
Direct Known Subclasses:
DefaultBHttpClientConnection, DefaultBHttpServerConnection

class BHttpConnectionBase extends Object implements BHttpConnection
  • Field Details

  • Constructor Details

  • Method Details

    • ensureOpen

      protected SocketHolder ensureOpen() throws IOException
      Throws:
      IOException
    • bind

      protected void bind(Socket socket) throws IOException
      Binds this connection to the given Socket. This socket will be used by the connection to send and receive data.

      After this method's execution the connection status will be reported as open and the isOpen() will return true.

      Parameters:
      socket - the socket.
      Throws:
      IOException - in case of an I/O error.
    • bind

      protected void bind(SocketHolder socketHolder) throws IOException
      Throws:
      IOException
    • isOpen

      public boolean isOpen()
      Description copied from interface: HttpConnection
      Checks if this connection is open.
      Specified by:
      isOpen in interface HttpConnection
      Returns:
      true if it is open, false if it is closed.
    • getProtocolVersion

      public ProtocolVersion getProtocolVersion()
      Description copied from interface: HttpConnection
      Returns this connection's protocol version or null if unknown.
      Specified by:
      getProtocolVersion in interface HttpConnection
      Returns:
      this connection's protocol version or null if unknown.
      Since:
      5.0
    • getSocketHolder

      protected SocketHolder getSocketHolder()
    • createContentOutputStream

      protected OutputStream createContentOutputStream(long len, SessionOutputBuffer buffer, OutputStream outputStream, Supplier<List<? extends Header>> trailers)
    • getChunkedRequestBuffer

      private byte[] getChunkedRequestBuffer()
    • createContentInputStream

      protected InputStream createContentInputStream(long len, SessionInputBuffer buffer, InputStream inputStream)
    • createIncomingEntity

      HttpEntity createIncomingEntity(HttpMessage message, SessionInputBuffer inBuffer, InputStream inputStream, long len)
    • getRemoteAddress

      public SocketAddress getRemoteAddress()
      Description copied from interface: HttpConnection
      Returns this connection's remote address or null if it is not connected yet or unconnected.
      Specified by:
      getRemoteAddress in interface HttpConnection
      Returns:
      this connection's remote address or null if it is not connected yet or unconnected.
    • getLocalAddress

      public SocketAddress getLocalAddress()
      Description copied from interface: HttpConnection
      Returns this connection's local address or null if it is not bound yet.
      Specified by:
      getLocalAddress in interface HttpConnection
      Returns:
      this connection's local address or null if it is not bound yet.
    • setSocketTimeout

      public void setSocketTimeout(Timeout timeout)
      Description copied from interface: SocketModalCloseable
      Sets the socket timeout value.
      Specified by:
      setSocketTimeout in interface SocketModalCloseable
      Parameters:
      timeout - timeout value
    • getSocketTimeout

      public Timeout getSocketTimeout()
      Description copied from interface: SocketModalCloseable
      Returns the socket timeout value.
      Specified by:
      getSocketTimeout in interface SocketModalCloseable
      Returns:
      timeout value.
    • close

      public void close(CloseMode closeMode)
      Description copied from interface: ModalCloseable
      Closes this process or endpoint and releases any system resources associated with it. If the endpoint or the process is already closed then invoking this method has no effect.
      Specified by:
      close in interface ModalCloseable
      Parameters:
      closeMode - How to close the receiver.
    • close

      public void close() throws IOException
      Description copied from interface: HttpConnection
      Closes this connection gracefully. This method will attempt to flush the internal output buffer prior to closing the underlying socket. This method MUST NOT be called from a different thread to force shutdown of the connection. Use shutdown instead.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Specified by:
      close in interface HttpConnection
      Throws:
      IOException
    • fillInputBuffer

      private int fillInputBuffer(Timeout timeout) throws IOException
      Throws:
      IOException
    • awaitInput

      protected boolean awaitInput(Timeout timeout) throws IOException
      Throws:
      IOException
    • isDataAvailable

      public boolean isDataAvailable(Timeout timeout) throws IOException
      Description copied from interface: BHttpConnection
      Checks if input data is available from the connection. May wait for the specified time until some data becomes available. Note that some implementations may completely ignore the timeout parameter.
      Specified by:
      isDataAvailable in interface BHttpConnection
      Parameters:
      timeout - the maximum time to wait for data
      Returns:
      true if data is available; false if there was no data available even after waiting for timeout.
      Throws:
      IOException - if an error happens on the connection
    • isStale

      public boolean isStale() throws IOException
      Description copied from interface: BHttpConnection
      Checks whether this connection has gone down. Network connections may get closed during some time of inactivity for several reasons. The next time a read is attempted on such a connection it will throw an IOException. This method tries to alleviate this inconvenience by trying to find out if a connection is still usable. Implementations may do that by attempting a read with a very small timeout. Thus this method may block for a small amount of time before returning a result. It is therefore an expensive operation.
      Specified by:
      isStale in interface BHttpConnection
      Returns:
      true if attempts to use this connection are likely to fail and this connection should be closed, or false if they are likely to succeed
      Throws:
      IOException
    • flush

      public void flush() throws IOException
      Description copied from interface: BHttpConnection
      Writes out all pending buffered data over the open connection.
      Specified by:
      flush in interface BHttpConnection
      Throws:
      IOException - in case of an I/O error
    • incrementRequestCount

      protected void incrementRequestCount()
    • incrementResponseCount

      protected void incrementResponseCount()
    • getSSLSession

      public SSLSession getSSLSession()
      Description copied from interface: HttpConnection
      Returns this connection's SSL session or null if TLS has not been activated.
      Specified by:
      getSSLSession in interface HttpConnection
      Returns:
      this connection's SSL session or null if TLS has not been activated.
    • getEndpointDetails

      public EndpointDetails getEndpointDetails()
      Description copied from interface: HttpConnection
      Returns this connection's endpoint details.
      Specified by:
      getEndpointDetails in interface HttpConnection
      Returns:
      this connection's endpoint details.
    • toString

      public String toString()
      Overrides:
      toString in class Object