Package io.github.mahmoudimus.quic.frame
Record Class Frame.Datagram
java.lang.Object
java.lang.Record
io.github.mahmoudimus.quic.frame.Frame.Datagram
- Record Components:
data- the unreliable datagram payload
- All Implemented Interfaces:
Frame
- Enclosing interface:
Frame
A DATAGRAM frame (RFC 9221; 0x30 without and 0x31 with a Length field).
encode(ByteBuffer) writes the Length field.-
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 payload.voidencode(ByteBuffer out) Writes the frame at the buffer's position.voidencode(ByteBuffer out, boolean withLength) Writes the frame, with the Length field or, when it ends the packet, without.intThe encoded length.intencodedLength(boolean withLength) The encoded length with or without the Length field.final booleanIndicates whether some other object is "equal to" this one.final inthashCode()Returns a hash code value for this object.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
-
Datagram
A DATAGRAM frame.- Parameters:
data- the payload between its position and limit
-
-
Method Details
-
data
The payload.- Returns:
- an independent view of the payload
-
encodedLength
public int encodedLength(boolean withLength) The encoded length with or without the Length field.- Parameters:
withLength- whether to count the Length field- Returns:
- the frame length in bytes
-
encode
Writes the frame, with the Length field or, when it ends the packet, without.- Parameters:
out- the buffer, written at its positionwithLength- whether to write the Length field (type 0x31)- Throws:
BufferOverflowException- if the frame does not fit; nothing is written then
-
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. All components in this record class are compared withObjects::equals(Object,Object).
-