Class HttpChannel

java.lang.Object
org.eclipse.jetty.client.transport.HttpChannel
All Implemented Interfaces:
CyclicTimeouts.Expirable
Direct Known Subclasses:
HttpChannelOverFCGI, HttpChannelOverHTTP, HttpChannelOverHTTP2

public abstract class HttpChannel extends Object implements CyclicTimeouts.Expirable
  • Constructor Details

  • Method Details

    • destroy

      public void destroy()
    • getHttpDestination

      public HttpDestination getHttpDestination()
    • associate

      public boolean associate(HttpExchange exchange)

      Associates the given exchange to this channel in order to be sent over the network.

      If the association is successful, the exchange can be sent. Otherwise, the channel must be disposed because whoever terminated the exchange did not do it - it did not have the channel yet.

      Parameters:
      exchange - the exchange to associate
      Returns:
      true if the association was successful, false otherwise
    • disassociate

      public boolean disassociate(HttpExchange exchange)

      Disassociates the exchange from this channel.

      Parameters:
      exchange - the current exchange that must be already completed
      Returns:
      true if the exchange was disassociated, false otherwise
    • getHttpExchange

      public HttpExchange getHttpExchange()

      Returns the HttpExchange currently associated with this channel, possibly null.

      The exchange may be completed and disassociated concurrently, so callers must act atomically on the exchange.

      Returns:
      the HttpExchange currently associated with this channel, possibly null.
    • getConnection

      protected abstract Connection getConnection()
    • getExpireNanoTime

      public long getExpireNanoTime()
      Description copied from interface: CyclicTimeouts.Expirable

      Returns the expiration time in nanoseconds.

      The value to return must be calculated taking into account the current nanoTime, for example:

      expireNanoTime = NanoTime.now() + timeoutNanos

      Returning Long.MAX_VALUE indicates that this entity does not expire.

      Specified by:
      getExpireNanoTime in interface CyclicTimeouts.Expirable
      Returns:
      the expiration time in nanoseconds, or Long.MAX_VALUE if this entity does not expire
    • getHttpSender

      protected abstract HttpSender getHttpSender()
    • getHttpReceiver

      protected abstract HttpReceiver getHttpReceiver()
    • send

      public void send()
    • send

      public abstract void send(HttpExchange exchange)
    • release

      public abstract void release()
    • proceed

      public void proceed(HttpExchange exchange, Runnable proceedAction, Throwable failure)
    • abort

      public void abort(HttpExchange exchange, Throwable requestFailure, Throwable responseFailure, Promise<Boolean> promise)
    • abortResponse

      public void abortResponse(HttpExchange exchange, Throwable failure, Promise<Boolean> promise)
    • exchangeTerminating

      public Result exchangeTerminating(HttpExchange exchange, Result result)
    • exchangeTerminated

      public void exchangeTerminated(HttpExchange exchange, Result result)
    • toString

      public String toString()
      Overrides:
      toString in class Object