Class QuicServerConnector
- All Implemented Interfaces:
Closeable,AutoCloseable,Connector,NetworkConnector,Container,Destroyable,Dumpable,Dumpable.DumpableContainer,Graceful,LifeCycle
- Direct Known Subclasses:
HTTP3ServerConnector
A server side network connector that uses a DatagramChannel to listen on a network port for QUIC traffic.
This connector uses ConnectionFactorys to configure the protocols to support.
The protocol is negotiated during the connection establishment by QuicSession, and for each QUIC stream
managed by a QuicSession a ConnectionFactory is used to create a Connection for the
correspondent QuicStreamEndPoint.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener, AbstractLifeCycle.StopExceptionNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
Container.InheritedListener, Container.ListenerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainerNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Graceful
Graceful.Shutdown, Graceful.ThrowingRunnableNested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener -
Field Summary
Fields inherited from class org.eclipse.jetty.server.AbstractConnector
LOG -
Constructor Summary
ConstructorsConstructorDescriptionQuicServerConnector(Server server, Executor executor, Scheduler scheduler, ByteBufferPool bufferPool, SslContextFactory.Server sslContextFactory, ConnectionFactory... factories) QuicServerConnector(Server server, SslContextFactory.Server sslContextFactory, ConnectionFactory... factories) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaccept(int acceptorID) protected voiddoStart()Starts the managed lifecycle beans in the order they were added.protected voiddoStop()Stops the managed lifecycle beans in the reverse order they were added.intintintbooleanisOpen()A Connector may be opened and not started (to reserve a port) or closed and running (to allow graceful shutdown of existing connections)booleanbooleanvoidopen()Performs the activities needed to open the network communication (for example, to start accepting incoming network connections).protected DatagramChannelvoidsetIdleTimeout(long idleTimeout) Sets the maximum Idle time for a connection, which roughly translates to theSocket.setSoTimeout(int)call, although with NIO implementations other mechanisms may be used to implement the timeout.voidsetInputBufferSize(int inputBufferSize) voidsetOutputBufferSize(int outputBufferSize) voidsetUseInputDirectByteBuffers(boolean useInputDirectByteBuffers) voidsetUseOutputDirectByteBuffers(boolean useOutputDirectByteBuffers) shutdown()Shutdown the component.Methods inherited from class org.eclipse.jetty.server.AbstractNetworkConnector
close, getHost, getPort, handleAcceptFailure, setHost, setPort, toStringMethods inherited from class org.eclipse.jetty.server.AbstractConnector
addConnectionFactory, addFirstConnectionFactory, addIfAbsentConnectionFactory, clearConnectionFactories, getAcceptorPriorityDelta, getAcceptors, getByteBufferPool, getConnectedEndPoints, getConnectionFactories, getConnectionFactory, getConnectionFactory, getDefaultConnectionFactory, getDefaultProtocol, getExecutor, getHttpChannelListeners, getIdleTimeout, getName, getProtocols, getScheduler, getServer, getShutdownIdleTimeout, interruptAcceptors, isAccepting, isShutdown, join, join, onEndPointClosed, onEndPointOpened, removeConnectionFactory, setAccepting, setAcceptorPriorityDelta, setConnectionFactories, setDefaultProtocol, setName, setShutdownIdleTimeoutMethods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeansMethods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.jetty.server.Connector
getByteBufferPool, getConnectedEndPoints, getConnectionFactories, getConnectionFactory, getConnectionFactory, getDefaultConnectionFactory, getExecutor, getIdleTimeout, getName, getProtocols, getScheduler, getServerMethods inherited from interface org.eclipse.jetty.util.component.Container
addBean, addBean, addEventListener, getBean, getBeans, getBeans, getCachedBeans, getContainedBeans, getEventListeners, isManaged, manage, removeBean, removeEventListener, unmanageMethods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpableMethods inherited from interface org.eclipse.jetty.util.component.Graceful
isShutdownMethods inherited from interface org.eclipse.jetty.util.component.LifeCycle
addEventListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, start, stop
-
Constructor Details
-
QuicServerConnector
public QuicServerConnector(Server server, SslContextFactory.Server sslContextFactory, ConnectionFactory... factories) -
QuicServerConnector
public QuicServerConnector(Server server, Executor executor, Scheduler scheduler, ByteBufferPool bufferPool, SslContextFactory.Server sslContextFactory, ConnectionFactory... factories)
-
-
Method Details
-
getQuicConfiguration
-
getLocalPort
public int getLocalPort()- Specified by:
getLocalPortin interfaceNetworkConnector- Overrides:
getLocalPortin classAbstractNetworkConnector- Returns:
- The actual port the connector is listening on, or -1 if it has not been opened, or -2 if it has been closed.
-
getInputBufferSize
public int getInputBufferSize() -
setInputBufferSize
public void setInputBufferSize(int inputBufferSize) -
getOutputBufferSize
public int getOutputBufferSize() -
setOutputBufferSize
public void setOutputBufferSize(int outputBufferSize) -
isUseInputDirectByteBuffers
public boolean isUseInputDirectByteBuffers() -
setUseInputDirectByteBuffers
public void setUseInputDirectByteBuffers(boolean useInputDirectByteBuffers) -
isUseOutputDirectByteBuffers
public boolean isUseOutputDirectByteBuffers() -
setUseOutputDirectByteBuffers
public void setUseOutputDirectByteBuffers(boolean useOutputDirectByteBuffers) -
isOpen
public boolean isOpen()Description copied from interface:NetworkConnectorA Connector may be opened and not started (to reserve a port) or closed and running (to allow graceful shutdown of existing connections)- Returns:
- True if the connector is Open.
-
doStart
Description copied from class:ContainerLifeCycleStarts the managed lifecycle beans in the order they were added.- Overrides:
doStartin classAbstractNetworkConnector- Throws:
AbstractLifeCycle.StopException- If thrown, the lifecycle will immediately be stopped.Exception- If there was a problem starting. Will cause a transition to FAILED state
-
open
Description copied from interface:NetworkConnectorPerforms the activities needed to open the network communication (for example, to start accepting incoming network connections).
- Specified by:
openin interfaceNetworkConnector- Overrides:
openin classAbstractNetworkConnector- Throws:
IOException- if this connector cannot be opened- See Also:
-
openDatagramChannel
- Throws:
IOException
-
setIdleTimeout
public void setIdleTimeout(long idleTimeout) Description copied from class:AbstractConnectorSets the maximum Idle time for a connection, which roughly translates to the
Socket.setSoTimeout(int)call, although with NIO implementations other mechanisms may be used to implement the timeout.The max idle time is applied:
- When waiting for a new message to be received on a connection
- When waiting for a new message to be sent on a connection
This value is interpreted as the maximum time between some progress being made on the connection. So if a single byte is read or written, then the timeout is reset.
- Overrides:
setIdleTimeoutin classAbstractConnector- Parameters:
idleTimeout- the idle timeout
-
doStop
Description copied from class:ContainerLifeCycleStops the managed lifecycle beans in the reverse order they were added.- Overrides:
doStopin classAbstractNetworkConnector- Throws:
Exception- If there was a problem stopping. Will cause a transition to FAILED state
-
shutdown
Description copied from interface:GracefulShutdown the component. When this method returns, the component should not accept any new load.- Specified by:
shutdownin interfaceGraceful- Overrides:
shutdownin classAbstractNetworkConnector- Returns:
- A future that is completed once all load on the component is completed
-
getTransport
- Returns:
- the underlying socket, channel, buffer etc. for the connector.
-
accept
protected void accept(int acceptorID) - Specified by:
acceptin classAbstractConnector
-