Record Class PacketHeader.VersionNegotiation

java.lang.Object
java.lang.Record
io.github.mahmoudimus.quic.packet.PacketHeader.VersionNegotiation
Record Components:
destinationId - the Destination Connection ID (the client's Source Connection ID)
sourceId - the Source Connection ID (the client's Destination Connection ID)
versions - the supported version numbers
All Implemented Interfaces:
PacketHeader
Enclosing interface:
PacketHeader

public static record PacketHeader.VersionNegotiation(ConnectionId destinationId, ConnectionId sourceId, List<Integer> versions) extends Record implements PacketHeader
A Version Negotiation packet (RFC 9000 section 17.2.1): the whole packet. The first byte is encoded as 0xc0, with the bit that the Fixed Bit occupies in other packets set, as RFC 9000 recommends for multiplexing.
  • Constructor Details

    • VersionNegotiation

      public VersionNegotiation(ConnectionId destinationId, ConnectionId sourceId, List<Integer> versions)
      A Version Negotiation packet.
      Parameters:
      destinationId - the Destination Connection ID
      sourceId - the Source Connection ID
      versions - the supported version numbers
  • Method Details

    • type

      public PacketType type()
      Description copied from interface: PacketHeader
      The packet type.
      Specified by:
      type in interface PacketHeader
      Returns:
      the type
    • encode

      public HeaderLayout encode(ByteBuffer out)
      Description copied from interface: PacketHeader
      Writes the header at the buffer's position.
      Specified by:
      encode in interface PacketHeader
      Parameters:
      out - the buffer
      Returns:
      where the fields landed
    • toString

      public final String 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.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • 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.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      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 with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • destinationId

      public ConnectionId destinationId()
      Returns the value of the destinationId record component.
      Specified by:
      destinationId in interface PacketHeader
      Returns:
      the value of the destinationId record component
    • sourceId

      public ConnectionId sourceId()
      Returns the value of the sourceId record component.
      Returns:
      the value of the sourceId record component
    • versions

      public List<Integer> versions()
      Returns the value of the versions record component.
      Returns:
      the value of the versions record component