Table of Contents

Class MultiplexedConnectionOptions

Namespace
IceRpc.Transports
Assembly
IceRpc.dll

A property bag used to configure a IMultiplexedConnection.

public record MultiplexedConnectionOptions : IEquatable<MultiplexedConnectionOptions>
Inheritance
MultiplexedConnectionOptions
Implements
Inherited Members

Properties

HandshakeTimeout

Gets or sets the minimum amount of time the multiplexed transport must allow for a connection establishment handshake to complete.

public TimeSpan HandshakeTimeout { get; set; }

Property Value

TimeSpan

The handshake timeout. The default is 10 seconds.

Remarks

The caller is expected to cancel a connection establishment attempt after its own "connect timeout". As a result, a multiplexed transport implementation may choose to always provide an infinite handshake timeout, regardless of the value of this option.

MaxBidirectionalStreams

Gets or sets the maximum allowed number of simultaneous remote bidirectional streams that can be opened.

public int MaxBidirectionalStreams { get; set; }

Property Value

int

The maximum number of remote bidirectional streams. Defaults to 100.

MaxUnidirectionalStreams

Gets or sets the maximum allowed number of simultaneous remote unidirectional streams that can be opened.

public int MaxUnidirectionalStreams { get; set; }

Property Value

int

The maximum number of remote unidirectional streams. Defaults to 100.

MinSegmentSize

Gets or sets the minimum size of the segment requested from the Pool.

public int MinSegmentSize { get; set; }

Property Value

int

The minimum size in bytes of the segment requested from the Pool. Defaults to 4 KB.

Pool

Gets or sets the MemoryPool<T> object used for buffer management.

public MemoryPool<byte> Pool { get; set; }

Property Value

MemoryPool<byte>

A pool of memory blocks used for buffer management. Defaults to Shared.

Remarks

Some multiplexed transports require the pool to return array-backed memory blocks. Slic over TCP does, because Slic's write buffers are allocated from this pool and passed down to the TCP transport, whose multi-segment write path uses SendAsync(IList<ArraySegment<byte>>, SocketFlags). The QUIC transport has no such requirement.