java.lang.Object
org.eclipse.jetty.io.AbstractConnection
org.eclipse.jetty.quic.common.QuicConnection
- All Implemented Interfaces:
Closeable,AutoCloseable,org.eclipse.jetty.io.Connection
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.UpgradeTo -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedQuicConnection(Executor executor, org.eclipse.jetty.util.thread.Scheduler scheduler, org.eclipse.jetty.io.ByteBufferPool byteBufferPool, 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.ByteBufferPoolorg.eclipse.jetty.io.DatagramChannelEndPointintorg.eclipse.jetty.util.thread.Schedulerbooleanbooleanvoidprotected voidvoidabstract booleanvoidonOpen()voidoutwardClose(QuicSession session, Throwable failure) 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, getExecutor, getInputBufferSize, 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 byteBufferPool, org.eclipse.jetty.io.EndPoint endPoint)
-
-
Method Details
-
getEndPoint
public org.eclipse.jetty.io.DatagramChannelEndPoint getEndPoint()- Specified by:
getEndPointin interfaceorg.eclipse.jetty.io.Connection- Overrides:
getEndPointin classorg.eclipse.jetty.io.AbstractConnection
-
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
public abstract boolean 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
-
write
public void write(org.eclipse.jetty.util.Callback callback, SocketAddress remoteAddress, ByteBuffer... buffers) -
onFailure
-