java.lang.Object
org.eclipse.jetty.io.AbstractConnection
org.eclipse.jetty.quic.common.QuicConnection
- All Implemented Interfaces:
Closeable,AutoCloseable,org.eclipse.jetty.io.Connection,org.eclipse.jetty.util.thread.Invocable
public abstract class QuicConnection
extends org.eclipse.jetty.io.AbstractConnection
A Connection implementation that receives and sends datagram packets via its associated DatagramChannelEndPoint.
The received bytes are peeked to obtain the QUIC connection ID; each QUIC connection ID has an associated
QuicSession, and the received bytes are then passed to the QuicSession for processing.
On the receive side, one QuicConnection fans-out to multiple QuicSessions.
On the send side, many QuicSessions fan-in to one QuicConnection.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.jetty.io.Connection
org.eclipse.jetty.io.Connection.Listener, org.eclipse.jetty.io.Connection.UpgradeFrom, org.eclipse.jetty.io.Connection.UpgradeToNested classes/interfaces inherited from interface org.eclipse.jetty.util.thread.Invocable
org.eclipse.jetty.util.thread.Invocable.Callable, org.eclipse.jetty.util.thread.Invocable.InvocationType, org.eclipse.jetty.util.thread.Invocable.ReadyTask, org.eclipse.jetty.util.thread.Invocable.Task -
Field Summary
Fields inherited from interface org.eclipse.jetty.util.thread.Invocable
__nonBlocking, NOOP -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedQuicConnection(Executor executor, org.eclipse.jetty.util.thread.Scheduler scheduler, org.eclipse.jetty.io.ByteBufferPool bufferPool, org.eclipse.jetty.io.EndPoint endPoint) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddEventListener(EventListener listener) voidclose()protected abstract QuicSessioncreateSession(SocketAddress remoteAddress, ByteBuffer cipherBuffer) voidorg.eclipse.jetty.io.ByteBufferPoolabstract InetSocketAddressintorg.eclipse.jetty.util.thread.Schedulerbooleanbooleanvoidprotected voidvoidabstract booleanonIdleExpired(TimeoutException timeoutException) voidonOpen()voidoutwardClose(QuicSession session, Throwable failure) protected Runnableprocess(QuicSession session, SocketAddress remoteAddress, ByteBuffer cipherBuffer) voidremoveEventListener(EventListener listener) voidsetOutputBufferSize(int outputBufferSize) voidsetUseInputDirectByteBuffers(boolean useInputDirectByteBuffers) voidsetUseOutputDirectByteBuffers(boolean useOutputDirectByteBuffers) voidwrite(org.eclipse.jetty.util.Callback callback, SocketAddress remoteAddress, ByteBuffer... buffers) Methods inherited from class org.eclipse.jetty.io.AbstractConnection
failedCallback, getBytesIn, getBytesOut, getCreatedTimeStamp, getEndPoint, getExecutor, getInputBufferSize, getInvocationType, getMessagesIn, getMessagesOut, isFillInterested, onFillInterestedFailed, onReadTimeout, setInputBufferSize, toConnectionString, toString, tryFillInterested
-
Constructor Details
-
QuicConnection
protected QuicConnection(Executor executor, org.eclipse.jetty.util.thread.Scheduler scheduler, org.eclipse.jetty.io.ByteBufferPool bufferPool, org.eclipse.jetty.io.EndPoint endPoint)
-
-
Method Details
-
getScheduler
public org.eclipse.jetty.util.thread.Scheduler getScheduler() -
getByteBufferPool
public org.eclipse.jetty.io.ByteBufferPool getByteBufferPool() -
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) -
getQuicSessions
-
addEventListener
- Specified by:
addEventListenerin interfaceorg.eclipse.jetty.io.Connection- Overrides:
addEventListenerin classorg.eclipse.jetty.io.AbstractConnection
-
removeEventListener
- Specified by:
removeEventListenerin interfaceorg.eclipse.jetty.io.Connection- Overrides:
removeEventListenerin classorg.eclipse.jetty.io.AbstractConnection
-
onOpen
public void onOpen()- Specified by:
onOpenin interfaceorg.eclipse.jetty.io.Connection- Overrides:
onOpenin classorg.eclipse.jetty.io.AbstractConnection
-
onClose
- Specified by:
onClosein interfaceorg.eclipse.jetty.io.Connection- Overrides:
onClosein classorg.eclipse.jetty.io.AbstractConnection
-
onFillable
public void onFillable()- Specified by:
onFillablein classorg.eclipse.jetty.io.AbstractConnection
-
fillInterested
public void fillInterested()- Overrides:
fillInterestedin classorg.eclipse.jetty.io.AbstractConnection
-
onIdleExpired
- Specified by:
onIdleExpiredin interfaceorg.eclipse.jetty.io.Connection- Overrides:
onIdleExpiredin classorg.eclipse.jetty.io.AbstractConnection
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceorg.eclipse.jetty.io.Connection- Overrides:
closein classorg.eclipse.jetty.io.AbstractConnection
-
outwardClose
-
createSession
protected abstract QuicSession createSession(SocketAddress remoteAddress, ByteBuffer cipherBuffer) throws IOException - Throws:
IOException
-
getLocalInetSocketAddress
-
write
public void write(org.eclipse.jetty.util.Callback callback, SocketAddress remoteAddress, ByteBuffer... buffers) -
process
protected Runnable process(QuicSession session, SocketAddress remoteAddress, ByteBuffer cipherBuffer) -
onFailure
-