Top Inners Constructors Methods
org.eclipse.jetty.http3.server

public Class HTTP3ServerConnectionFactory

extends AbstractHTTP3ServerConnectionFactory
Class Inheritance
Imports
java.util.Objects, java.util.concurrent.TimeoutException, org.eclipse.jetty.http.HttpField, .HttpVersion, org.eclipse.jetty.http3.HTTP3Stream, org.eclipse.jetty.http3.api.Session, .Stream, org.eclipse.jetty.http3.frames.HeadersFrame, org.eclipse.jetty.http3.server.internal.HTTP3StreamServer, .HttpStreamOverHTTP3, .ServerHTTP3Session, .ServerHTTP3StreamConnection, org.eclipse.jetty.io.EndPoint, org.eclipse.jetty.server.ConnectionMetaData, .HttpConfiguration, org.eclipse.jetty.util.Promise, org.slf4j.Logger, .LoggerFactory

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
private static class

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Inherited from org.eclipse.jetty.http3.server.AbstractHTTP3ServerConnectionFactory:
getHTTP3ConfigurationgetHttpConfigurationnewConnectionnewProtocolSession

Constructor Detail

HTTP3ServerConnectionFactoryback to summary
public HTTP3ServerConnectionFactory()
HTTP3ServerConnectionFactoryback to summary
public HTTP3ServerConnectionFactory(HttpConfiguration configuration)
org.eclipse.jetty.http3.server back to summary

private Class HTTP3ServerConnectionFactory.HTTP3SessionListener

extends Object
implements Listener
Class Inheritance
  • java.lang.Object
  • org.eclipse.jetty.http3.server.HTTP3ServerConnectionFactory.HTTP3SessionListener
All Implemented Interfaces
org.eclipse.jetty.http3.api.Session.Server.Listener, org.eclipse.jetty.http3.api.Session.Listener

Field Summary

Modifier and TypeField and Description
private static final Logger

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public void
onFailure(Session session, long error, String reason, Throwable failure)

Overrides default org.eclipse.jetty.http3.api.Session.Listener.onFailure.

Callback method invoked when a failure has been detected for this session.

public boolean
onIdleTimeout(Session session)

Overrides default org.eclipse.jetty.http3.api.Session.Listener.onIdleTimeout.

Callback method invoked when the idle timeout has expired.

public Stream.Server.Listener
onRequest(Stream.Server stream, HeadersFrame frame)

Overrides default org.eclipse.jetty.http3.api.Session.Server.Listener.onRequest.

Callback method invoked when a request is received.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

LOGback to summary
private static final Logger LOG

Constructor Detail

HTTP3SessionListenerback to summary
private HTTP3SessionListener()

Method Detail

onFailureback to summary
public void onFailure(Session session, long error, String reason, Throwable failure)

Overrides default org.eclipse.jetty.http3.api.Session.Listener.onFailure.

Doc from org.eclipse.jetty.http3.api.Session.Listener.onFailure.

Callback method invoked when a failure has been detected for this session.

Annotations
@Override
onIdleTimeoutback to summary
public boolean onIdleTimeout(Session session)

Overrides default org.eclipse.jetty.http3.api.Session.Listener.onIdleTimeout.

Doc from org.eclipse.jetty.http3.api.Session.Listener.onIdleTimeout.

Callback method invoked when the idle timeout has expired.

Annotations
@Override
onRequestback to summary
public Stream.Server.Listener onRequest(Stream.Server stream, HeadersFrame frame)

Overrides default org.eclipse.jetty.http3.api.Session.Server.Listener.onRequest.

Doc from org.eclipse.jetty.http3.api.Session.Server.Listener.onRequest.

Callback method invoked when a request is received.

Applications should implement this method to process HTTP/3 requests, typically providing an HTTP/3 response via Stream.Server#respond(HeadersFrame):

class MyServer implements Session.Server.Listener
{
    @Override
    public Stream.Server.Listener onRequest(Stream.Server stream, HeadersFrame frame)
    {
        // Send a response.
        var response = new MetaData.Response(HttpVersion.HTTP_3, HttpStatus.OK_200, HttpFields.EMPTY);
        stream.respond(new HeadersFrame(response, true));
        if (!frame.isLast())
            stream.demand();
        return null;
    }
}

If there is request content (indicated by the fact that the HEADERS frame is not the last in the stream), then applications either:

Annotations
@Override
org.eclipse.jetty.http3.server back to summary

private Class HTTP3ServerConnectionFactory.HTTP3StreamListener

extends Object
implements Listener
Class Inheritance
  • java.lang.Object
  • org.eclipse.jetty.http3.server.HTTP3ServerConnectionFactory.HTTP3StreamListener
All Implemented Interfaces
org.eclipse.jetty.http3.api.Stream.Server.Listener

Field Summary

Modifier and TypeField and Description
private final EndPoint

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private ServerHTTP3StreamConnection
public void
onDataAvailable(Stream.Server stream)

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

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

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

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

Callback method invoked when a stream failure occurred.

public void
onIdleTimeout(Stream.Server stream, TimeoutException timeout, Promise<Boolean> promise)

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

Callback method invoked when the stream idle timeout elapses.

public void
onRequest(Stream stream, HeadersFrame frame)

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

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

Callback method invoked when a trailer is received.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

endPointback to summary
private final EndPoint endPoint

Constructor Detail

HTTP3StreamListenerback to summary
public HTTP3StreamListener(EndPoint endPoint)

Method Detail

getConnectionback to summary
private ServerHTTP3StreamConnection getConnection()
onDataAvailableback to summary
public void onDataAvailable(Stream.Server stream)

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

Doc from org.eclipse.jetty.http3.api.Stream.Server.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.Server.Listener
{
    @Override
    public void onDataAvailable(Stream.Server 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.Server stream, long error, Throwable failure)

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

Doc from org.eclipse.jetty.http3.api.Stream.Server.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.Server stream, TimeoutException timeout, Promise<Boolean> promise)

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

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

Callback method invoked when the stream idle timeout elapses.

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

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

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

Callback method invoked when a trailer is received.

Annotations
@Override