Class TransportParameters.Builder

java.lang.Object
io.github.mahmoudimus.quic.params.TransportParameters.Builder
Enclosing class:
TransportParameters

public static final class TransportParameters.Builder extends Object
Builds TransportParameters, starting from the defaults. Not thread-safe.
  • Method Details

    • originalDestinationConnectionId

      public TransportParameters.Builder originalDestinationConnectionId(ConnectionId v)
      Sets original_destination_connection_id.
      Parameters:
      v - the connection ID, or null
      Returns:
      this builder
    • maxIdleTimeout

      public TransportParameters.Builder maxIdleTimeout(long v)
      Sets max_idle_timeout.
      Parameters:
      v - milliseconds, 0 to disable
      Returns:
      this builder
    • statelessResetToken

      public TransportParameters.Builder statelessResetToken(StatelessResetToken v)
      Sets stateless_reset_token.
      Parameters:
      v - the token, or null
      Returns:
      this builder
    • maxUdpPayloadSize

      public TransportParameters.Builder maxUdpPayloadSize(long v)
      Sets max_udp_payload_size.
      Parameters:
      v - bytes
      Returns:
      this builder
    • initialMaxData

      public TransportParameters.Builder initialMaxData(long v)
      Sets initial_max_data.
      Parameters:
      v - bytes
      Returns:
      this builder
    • initialMaxStreamDataBidiLocal

      public TransportParameters.Builder initialMaxStreamDataBidiLocal(long v)
      Sets initial_max_stream_data_bidi_local.
      Parameters:
      v - bytes
      Returns:
      this builder
    • initialMaxStreamDataBidiRemote

      public TransportParameters.Builder initialMaxStreamDataBidiRemote(long v)
      Sets initial_max_stream_data_bidi_remote.
      Parameters:
      v - bytes
      Returns:
      this builder
    • initialMaxStreamDataUni

      public TransportParameters.Builder initialMaxStreamDataUni(long v)
      Sets initial_max_stream_data_uni.
      Parameters:
      v - bytes
      Returns:
      this builder
    • initialMaxStreamsBidi

      public TransportParameters.Builder initialMaxStreamsBidi(long v)
      Sets initial_max_streams_bidi.
      Parameters:
      v - the stream count
      Returns:
      this builder
    • initialMaxStreamsUni

      public TransportParameters.Builder initialMaxStreamsUni(long v)
      Sets initial_max_streams_uni.
      Parameters:
      v - the stream count
      Returns:
      this builder
    • ackDelayExponent

      public TransportParameters.Builder ackDelayExponent(long v)
      Sets ack_delay_exponent.
      Parameters:
      v - the exponent
      Returns:
      this builder
    • maxAckDelay

      public TransportParameters.Builder maxAckDelay(long v)
      Sets max_ack_delay.
      Parameters:
      v - milliseconds
      Returns:
      this builder
    • disableActiveMigration

      public TransportParameters.Builder disableActiveMigration(boolean v)
      Sets disable_active_migration.
      Parameters:
      v - whether active migration is disabled
      Returns:
      this builder
    • preferredAddress

      public TransportParameters.Builder preferredAddress(PreferredAddress v)
      Sets preferred_address.
      Parameters:
      v - the address, or null
      Returns:
      this builder
    • activeConnectionIdLimit

      public TransportParameters.Builder activeConnectionIdLimit(long v)
      Sets active_connection_id_limit.
      Parameters:
      v - the limit
      Returns:
      this builder
    • initialSourceConnectionId

      public TransportParameters.Builder initialSourceConnectionId(ConnectionId v)
      Sets initial_source_connection_id.
      Parameters:
      v - the connection ID, or null
      Returns:
      this builder
    • retrySourceConnectionId

      public TransportParameters.Builder retrySourceConnectionId(ConnectionId v)
      Sets retry_source_connection_id.
      Parameters:
      v - the connection ID, or null
      Returns:
      this builder
    • maxDatagramFrameSize

      public TransportParameters.Builder maxDatagramFrameSize(long v)
      Sets max_datagram_frame_size.
      Parameters:
      v - bytes, 0 for no DATAGRAM support
      Returns:
      this builder
    • greaseQuicBit

      public TransportParameters.Builder greaseQuicBit(boolean v)
      Sets grease_quic_bit.
      Parameters:
      v - whether a cleared Fixed Bit is accepted
      Returns:
      this builder
    • minAckDelay

      public TransportParameters.Builder minAckDelay(long v)
      Sets min_ack_delay.
      Parameters:
      v - microseconds, or -1 to omit
      Returns:
      this builder
    • versionInformation

      public TransportParameters.Builder versionInformation(VersionInformation v)
      Sets version_information.
      Parameters:
      v - the version information, or null
      Returns:
      this builder
    • addUnknownParameter

      public TransportParameters.Builder addUnknownParameter(UnknownParameter v)
      Adds an uninterpreted parameter, such as a GREASE one from UnknownParameter.grease(java.util.Random).
      Parameters:
      v - the parameter
      Returns:
      this builder
    • build

      public TransportParameters build()
      Builds the parameters.
      Returns:
      the parameters
      Throws:
      IllegalArgumentException - if a value is outside the varint range