Package io.github.mahmoudimus.quic.frame
Record Class Frame.Crypto
java.lang.Object
java.lang.Record
io.github.mahmoudimus.quic.frame.Frame.Crypto
- Record Components:
offset- the offset of the data in the level's crypto streamdata- the data
- All Implemented Interfaces:
Frame
- Enclosing interface:
Frame
A CRYPTO frame (type 0x06), carrying TLS handshake bytes.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.github.mahmoudimus.quic.frame.Frame
Frame.Ack, Frame.AckFrequency, Frame.AckRange, Frame.ApplicationClose, Frame.ConnectionClose, Frame.Crypto, Frame.DataBlocked, Frame.Datagram, Frame.EcnCounts, Frame.HandshakeDone, Frame.ImmediateAck, Frame.MaxData, Frame.MaxStreamData, Frame.MaxStreams, Frame.NewConnectionId, Frame.NewToken, Frame.Padding, Frame.PathChallenge, Frame.PathResponse, Frame.Ping, Frame.ResetStream, Frame.RetireConnectionId, Frame.StopSending, Frame.Stream, Frame.StreamDataBlocked, Frame.StreamsBlocked -
Field Summary
Fields inherited from interface io.github.mahmoudimus.quic.frame.Frame
MAX_STREAM_COUNT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiondata()The data.voidencode(ByteBuffer out) Writes the frame at the buffer's position.static intencode(ByteBuffer out, long offset, ByteBuffer data, int budget) Writes as much of the data as fits a byte budget in one CRYPTO frame, with an exact Length field, as quinn fills packets with handshake data.intThe encoded length.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.longoffset()Returns the value of theoffsetrecord component.final StringtoString()Returns a string representation of this record class.type()The frame type.longtypeCode()The exact type code this frame encodes with, flags included.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface io.github.mahmoudimus.quic.frame.Frame
isAckEliciting
-
Constructor Details
-
Crypto
A CRYPTO frame.- Parameters:
offset- the stream offsetdata- the data between its position and limit
-
-
Method Details
-
data
The data.- Returns:
- an independent view of the data
-
encode
Writes as much of the data as fits a byte budget in one CRYPTO frame, with an exact Length field, as quinn fills packets with handshake data.- Parameters:
out- the buffer, written at its positionoffset- the crypto stream offset of the first bytedata- the data to send; its position moves past the bytes writtenbudget- the most bytes the frame may take (also bounded byout.remaining())- Returns:
- the data bytes written; 0 if
datais empty, in which case nothing is written; -1 if not even one byte fits
-
type
Description copied from interface:FrameThe frame type. -
typeCode
public long typeCode()Description copied from interface:FrameThe exact type code this frame encodes with, flags included. -
encodedLength
public int encodedLength()Description copied from interface:FrameThe encoded length.- Specified by:
encodedLengthin interfaceFrame- Returns:
- the bytes
Frame.encode(java.nio.ByteBuffer)writes
-
encode
Description copied from interface:FrameWrites the frame at the buffer's position. -
toString
Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components. -
hashCode
public final int hashCode()Returns a hash code value for this object. The value is derived from the hash code of each of the record components. -
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared withObjects::equals(Object,Object); primitive components are compared with '=='. -
offset
public long offset()Returns the value of theoffsetrecord component.- Returns:
- the value of the
offsetrecord component
-