Top Fields Constructors Methods
org.eclipse.jetty.http3.client.transport.internal

public Class HttpReceiverOverHTTP3

extends HttpReceiver
implements Listener
Class Inheritance
All Implemented Interfaces
org.eclipse.jetty.http3.api.Stream.Client.Listener
Imports
java.io.EOFException, java.nio.ByteBuffer, org.eclipse.jetty.client.transport.HttpExchange, .HttpReceiver, .HttpResponse, org.eclipse.jetty.http.HttpField, .HttpFields, .MetaData, org.eclipse.jetty.http3.HTTP3ErrorCode, org.eclipse.jetty.http3.api.Stream, org.eclipse.jetty.http3.frames.HeadersFrame, org.eclipse.jetty.io.Content, org.eclipse.jetty.util.Promise, org.slf4j.Logger, .LoggerFactory

Field Summary

Modifier and TypeField and Description
private static final Logger

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public void
failAndClose(Throwable failure)

Implements abstract org.eclipse.jetty.client.transport.HttpReceiver.failAndClose.

Fails the receiver and closes the underlying stream.

protected HttpChannelOverHTTP3
public void
onDataAvailable(Stream.Client stream)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onDataAvailable.

Callback method invoked if the application has expressed demand for content, and if there may be content available.

public void
onFailure(Stream.Client stream, long error, Throwable failure)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onFailure.

Callback method invoked when a stream failure occurred.

public void
onIdleTimeout(Stream.Client stream, Throwable failure, Promise<Boolean> promise)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onIdleTimeout.

Callback method invoked when the stream idle timeout elapses.

protected void
onInterim()

Implements abstract org.eclipse.jetty.client.transport.HttpReceiver.onInterim.

Prepare for the next step after an interim response was read.

public void
onNewStream(Stream.Client stream)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onNewStream.

Callback method invoked when a stream is created locally by Session.Client#newRequest(HeadersFrame, Listener).

public void
onResponse(Stream.Client stream, HeadersFrame frame)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onResponse.

Callback method invoked when a response is received.

public void
onTrailer(Stream.Client stream, HeadersFrame frame)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onTrailer.

Callback method invoked when a trailer is received.

public Content.Chunk
read(boolean fillInterestIfNeeded)

Implements abstract org.eclipse.jetty.client.transport.HttpReceiver.read.

Reads a chunk of data.

Inherited from org.eclipse.jetty.client.transport.HttpReceiver:
abortdisposegetHttpDestinationgetHttpExchangehasContentisFailedresetresponseBeginresponseContentAvailableresponseFailureresponseHeaderresponseHeadersresponseSuccessstoreCookietoString

Field Detail

LOGback to summary
private static final Logger LOG

Hides org.eclipse.jetty.client.transport.HttpReceiver.LOG.

Constructor Detail

HttpReceiverOverHTTP3back to summary
protected HttpReceiverOverHTTP3(HttpChannelOverHTTP3 channel)

Method Detail

failAndCloseback to summary
public void failAndClose(Throwable failure)

Implements abstract org.eclipse.jetty.client.transport.HttpReceiver.failAndClose.

Doc from org.eclipse.jetty.client.transport.HttpReceiver.failAndClose.

Fails the receiver and closes the underlying stream.

Annotations
@Override
getHttpChannelback to summary
protected HttpChannelOverHTTP3 getHttpChannel()

Overrides org.eclipse.jetty.client.transport.HttpReceiver.getHttpChannel.

Annotations
@Override
onDataAvailableback to summary
public void onDataAvailable(Stream.Client stream)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onDataAvailable.

Doc from org.eclipse.jetty.http3.api.Stream.Client.Listener.onDataAvailable.

Callback method invoked if the application has expressed demand for content, and if there may be content available.

A server application that wishes to handle request content should typically call Stream#demand() from Session.Server.Listener#onRequest(Server, HeadersFrame).

A client application that wishes to handle response content should typically call Stream#demand() from Stream.Client.Listener#onResponse(Client, HeadersFrame).

Just prior calling this method, the outstanding demand is cancelled; applications that implement this method should read content calling Stream#readData(), and call Stream#demand() to signal to the implementation to call again this method when there may be more content available.

Only one thread at a time invokes this method, although it may not be the same thread across different invocations.

It is always guaranteed that invoking Stream#demand() from within this method will not cause a StackOverflowError.

Typical usage:

class MyStreamListener implements Stream.Client.Listener
{
    @Override
    public void onDataAvailable(Stream.Client stream)
    {
        // Read a chunk of the content.
        Stream.Data data = stream.readData();
        if (data == null)
        {
            // No data available now, demand to be called back.
            stream.demand();
        }
        else
        {
            // Process the content.
            process(data.getByteBuffer());
            // Notify that the content has been consumed.
            data.release();
            if (!data.isLast())
            {
                // Demand to be called back.
                stream.demand();
            }
        }
    }
}
Annotations
@Override
onFailureback to summary
public void onFailure(Stream.Client stream, long error, Throwable failure)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onFailure.

Doc from org.eclipse.jetty.http3.api.Stream.Client.Listener.onFailure.

Callback method invoked when a stream failure occurred.

Typical stream failures, among others, are failures to decode a HEADERS frame, or failures to read bytes because the stream has been reset.

Annotations
@Override
onIdleTimeoutback to summary
public void onIdleTimeout(Stream.Client stream, Throwable failure, Promise<Boolean> promise)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onIdleTimeout.

Doc from org.eclipse.jetty.http3.api.Stream.Client.Listener.onIdleTimeout.

Callback method invoked when the stream idle timeout elapses.

Annotations
@Override
onInterimback to summary
protected void onInterim()

Implements abstract org.eclipse.jetty.client.transport.HttpReceiver.onInterim.

Doc from org.eclipse.jetty.client.transport.HttpReceiver.onInterim.

Prepare for the next step after an interim response was read.

Annotations
@Override
onNewStreamback to summary
public void onNewStream(Stream.Client stream)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onNewStream.

Doc from org.eclipse.jetty.http3.api.Stream.Client.Listener.onNewStream.

Callback method invoked when a stream is created locally by Session.Client#newRequest(HeadersFrame, Listener).

Annotations
@Override
onResponseback to summary
public void onResponse(Stream.Client stream, HeadersFrame frame)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onResponse.

Doc from org.eclipse.jetty.http3.api.Stream.Client.Listener.onResponse.

Callback method invoked when a response is received.

To read response content, applications should call Stream#demand() and override Stream.Client.Listener#onDataAvailable(Client).

Annotations
@Override
onTrailerback to summary
public void onTrailer(Stream.Client stream, HeadersFrame frame)

Overrides default org.eclipse.jetty.http3.api.Stream.Client.Listener.onTrailer.

Doc from org.eclipse.jetty.http3.api.Stream.Client.Listener.onTrailer.

Callback method invoked when a trailer is received.

Annotations
@Override
readback to summary
public Content.Chunk read(boolean fillInterestIfNeeded)

Implements abstract org.eclipse.jetty.client.transport.HttpReceiver.read.

Doc from org.eclipse.jetty.client.transport.HttpReceiver.read.

Reads a chunk of data.

If no data was read, null is returned and if fillInterestIfNeeded is true then fill interest is registered.

The returned chunk of data may be the last one or an error exactly like Content.Source#read() specifies.

Annotations
@Override