Class StreamConnection
Namespace: DotBoxD.Services.Transport
Assembly: DotBoxD.Services.dll
DotBoxD connection over a duplex stream, including named pipe streams.
public sealed class StreamConnection : IRpcFrameChannel, IRpcValueTaskChannel, IRpcChannel, IAsyncDisposableInheritance
Section titled “Inheritance”Implements
Section titled “Implements”IRpcFrameChannel, IRpcValueTaskChannel, IRpcChannel, IAsyncDisposable
Inherited Members
Section titled “Inherited Members”object.Equals(object), object.Equals(object, object), object.GetHashCode(), object.GetType(), object.ReferenceEquals(object, object), object.ToString()
Constructors
Section titled “Constructors”StreamConnection(Stream, string?, bool, int, TimeSpan?)
Section titled “ StreamConnection(Stream, string?, bool, int, TimeSpan?)”Creates a framed connection over stream. A null
frameReadIdleTimeout uses the finite default frame-read idle timeout.
Pass System.Threading.Timeout.InfiniteTimeSpan to disable the timeout for trusted streams.
public StreamConnection(Stream stream, string? remoteEndpoint = null, bool ownsStream = true, int maxMessageSize = 16777216, TimeSpan? frameReadIdleTimeout = null)Parameters
Section titled “Parameters”stream Stream
remoteEndpoint string?
ownsStream bool
maxMessageSize int
frameReadIdleTimeout TimeSpan?
Properties
Section titled “Properties”IsConnected
Section titled “ IsConnected”Gets whether the channel is currently connected.
public bool IsConnected { get; }Property Value
Section titled “Property Value”RemoteEndpoint
Section titled “ RemoteEndpoint”Gets a string representation of the remote endpoint.
public string RemoteEndpoint { get; }Property Value
Section titled “Property Value”Methods
Section titled “Methods”CloseAsync(CancellationToken)
Section titled “ CloseAsync(CancellationToken)”Closes the connection. This operation is idempotent.
public Task CloseAsync(CancellationToken ct = default)Parameters
Section titled “Parameters”Returns
Section titled “Returns”DisposeAsync()
Section titled “ DisposeAsync()”Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.
public ValueTask DisposeAsync()Returns
Section titled “Returns”A task that represents the asynchronous dispose operation.
ReceiveAsync(CancellationToken)
Section titled “ ReceiveAsync(CancellationToken)”Receives a framed message. The caller owns the returned DotBoxD.Services.Buffers.Payload and must
dispose it. A payload with DotBoxD.Services.Buffers.Payload.Length of 0 signals the channel was closed.
public Task<Payload> ReceiveAsync(CancellationToken ct = default)Parameters
Section titled “Parameters”Returns
Section titled “Returns”ReceiveFrameValueAsync(CancellationToken)
Section titled “ ReceiveFrameValueAsync(CancellationToken)”public ValueTask<RpcFrame> ReceiveFrameValueAsync(CancellationToken ct = default)Parameters
Section titled “Parameters”Returns
Section titled “Returns”ReceiveValueAsync(CancellationToken)
Section titled “ ReceiveValueAsync(CancellationToken)”public ValueTask<Payload> ReceiveValueAsync(CancellationToken ct = default)Parameters
Section titled “Parameters”Returns
Section titled “Returns”SendAsync(ReadOnlyMemory<byte>, CancellationToken)
Section titled “ SendAsync(ReadOnlyMemory<byte>, CancellationToken)”Sends a framed message over the channel.
public Task SendAsync(ReadOnlyMemory<byte> data, CancellationToken ct = default)Parameters
Section titled “Parameters”data ReadOnlyMemory<byte>
Returns
Section titled “Returns”SendFrameValueAsync(PooledBufferWriter, CancellationToken)
Section titled “ SendFrameValueAsync(PooledBufferWriter, CancellationToken)”public ValueTask SendFrameValueAsync(PooledBufferWriter frame, CancellationToken ct = default)Parameters
Section titled “Parameters”frame PooledBufferWriter
Returns
Section titled “Returns”SendValueAsync(ReadOnlyMemory<byte>, CancellationToken)
Section titled “ SendValueAsync(ReadOnlyMemory<byte>, CancellationToken)”public ValueTask SendValueAsync(ReadOnlyMemory<byte> data, CancellationToken ct = default)Parameters
Section titled “Parameters”data ReadOnlyMemory<byte>