Package org.eclipse.jetty.quic.quiche
Class QuicheConnection
java.lang.Object
org.eclipse.jetty.quic.quiche.QuicheConnection
- Direct Known Subclasses:
JnaQuicheConnection
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static interface
static class
static interface
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract boolean
static QuicheConnection
connect
(QuicheConfig quicheConfig, InetSocketAddress local, InetSocketAddress peer) static QuicheConnection
connect
(QuicheConfig quicheConfig, InetSocketAddress local, InetSocketAddress peer, int connectionIdLength) abstract void
dispose()
abstract int
drainCipherBytes
(ByteBuffer buffer) Fill the given buffer with cipher text to be sent.abstract int
drainClearBytesForStream
(long streamId, ByteBuffer buffer) abstract int
feedCipherBytes
(ByteBuffer buffer, SocketAddress local, SocketAddress peer) Read the buffer of cipher text coming from the network.final int
feedClearBytesForStream
(long streamId, ByteBuffer buffer) abstract int
feedClearBytesForStream
(long streamId, ByteBuffer buffer, boolean last) final void
feedFinForStream
(long streamId) abstract QuicheConnection.CloseInfo
abstract String
abstract byte[]
abstract QuicheConnection.CloseInfo
abstract boolean
abstract boolean
abstract boolean
abstract boolean
isStreamFinished
(long streamId) iterableStreamIds
(boolean write) abstract int
static boolean
negotiate
(QuicheConnection.TokenMinter tokenMinter, ByteBuffer packetRead, ByteBuffer packetToSend) Fully consumes thepacketRead
buffer.abstract long
abstract void
abstract void
shutdownStream
(long streamId, boolean writeSide, long error) static QuicheConnection
tryAccept
(QuicheConfig quicheConfig, QuicheConnection.TokenValidator tokenValidator, ByteBuffer packetRead, SocketAddress local, SocketAddress peer) Fully consumes thepacketRead
buffer if the connection was accepted.abstract long
abstract long
windowCapacity
(long streamId)
-
Constructor Details
-
QuicheConnection
public QuicheConnection()
-
-
Method Details
-
connect
public static QuicheConnection connect(QuicheConfig quicheConfig, InetSocketAddress local, InetSocketAddress peer) throws IOException - Throws:
IOException
-
connect
public static QuicheConnection connect(QuicheConfig quicheConfig, InetSocketAddress local, InetSocketAddress peer, int connectionIdLength) throws IOException - Throws:
IOException
-
negotiate
public static boolean negotiate(QuicheConnection.TokenMinter tokenMinter, ByteBuffer packetRead, ByteBuffer packetToSend) throws IOException Fully consumes thepacketRead
buffer.- Returns:
- true if a negotiation packet was written to the
packetToSend
buffer, false if negotiation failed and thepacketRead
buffer can be dropped. - Throws:
IOException
-
tryAccept
public static QuicheConnection tryAccept(QuicheConfig quicheConfig, QuicheConnection.TokenValidator tokenValidator, ByteBuffer packetRead, SocketAddress local, SocketAddress peer) throws IOException Fully consumes thepacketRead
buffer if the connection was accepted.- Returns:
- an established connection if accept succeeded, null if accept failed and negotiation should be tried.
- Throws:
IOException
-
readableStreamIds
-
writableStreamIds
-
iterableStreamIds
-
feedCipherBytes
public abstract int feedCipherBytes(ByteBuffer buffer, SocketAddress local, SocketAddress peer) throws IOException Read the buffer of cipher text coming from the network.- Parameters:
buffer
- the buffer to read.local
- the local address on which the buffer was received.peer
- the address of the peer from which the buffer was received.- Returns:
- how many bytes were consumed.
- Throws:
IOException
-
drainCipherBytes
Fill the given buffer with cipher text to be sent.- Parameters:
buffer
- the buffer to fill.- Returns:
- how many bytes were added to the buffer.
- Throws:
IOException
-
isConnectionClosed
public abstract boolean isConnectionClosed() -
isConnectionEstablished
public abstract boolean isConnectionEstablished() -
nextTimeout
public abstract long nextTimeout() -
onTimeout
public abstract void onTimeout() -
getNegotiatedProtocol
-
close
-
dispose
public abstract void dispose() -
isDraining
public abstract boolean isDraining() -
maxLocalStreams
public abstract int maxLocalStreams() -
windowCapacity
public abstract long windowCapacity() -
windowCapacity
- Throws:
IOException
-
shutdownStream
public abstract void shutdownStream(long streamId, boolean writeSide, long error) throws IOException - Throws:
IOException
-
feedFinForStream
- Throws:
IOException
-
feedClearBytesForStream
- Throws:
IOException
-
feedClearBytesForStream
public abstract int feedClearBytesForStream(long streamId, ByteBuffer buffer, boolean last) throws IOException - Throws:
IOException
-
drainClearBytesForStream
- Throws:
IOException
-
isStreamFinished
public abstract boolean isStreamFinished(long streamId) -
getRemoteCloseInfo
-
getLocalCloseInfo
-
getPeerCertificate
public abstract byte[] getPeerCertificate()
-