Skip to content

Class RpcPeer

Namespace: DotBoxD.Services.Peer
Assembly: DotBoxD.Services.dll

One symmetric side of a DotBoxD connection. A peer can provide local services and get proxies for remote services over one demuxed read loop.

public sealed class RpcPeer : IAsyncDisposable, IRpcInvoker

objectRpcPeer

IAsyncDisposable, IRpcInvoker

object.Equals(object), object.Equals(object, object), object.GetHashCode(), object.GetType(), object.ReferenceEquals(object, object), object.ToString()

Gets whether the underlying channel is still connected.

public bool IsConnected { get; }

bool

The remote endpoint string of the underlying channel.

public string RemoteEndpoint { get; }

string

Closes the peer by disposing it; closed peers cannot be restarted.

public Task CloseAsync(CancellationToken ct = default)

ct CancellationToken

Task

Disposal always runs to completion: ct fails fast only before any teardown begins, and never abandons an in-progress dispose to finish in the background.

Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.

public ValueTask DisposeAsync()

ValueTask

A task that represents the asynchronous dispose operation.

Creates a proxy to call TService on the other side.

public TService Get<TService>() where TService : class

TService

TService

InvokeAsync<TRequest, TResponse>(string, string, TRequest, CancellationToken)

Section titled “ InvokeAsync<TRequest, TResponse>(string, string, TRequest, CancellationToken)”

Invokes a method with a request body and a response body.

public Task<TResponse> InvokeAsync<TRequest, TResponse>(string service, string method, TRequest request, CancellationToken ct = default)

service string

The remote service name.

method string

The method to invoke.

request TRequest

The request payload.

ct CancellationToken

Cancellation token.

Task<TResponse>

TRequest

TResponse

InvokeAsync<TRequest, TResponse>(string, string, TRequest, RpcStreamAttachment[], CancellationToken)

Section titled “ InvokeAsync<TRequest, TResponse>(string, string, TRequest, RpcStreamAttachment[], CancellationToken)”

Invokes a method with a request body that references streamed arguments.

public Task<TResponse> InvokeAsync<TRequest, TResponse>(string service, string method, TRequest request, RpcStreamAttachment[] streams, CancellationToken ct = default)

service string

method string

request TRequest

streams RpcStreamAttachment[]

ct CancellationToken

Task<TResponse>

TRequest

TResponse

InvokeAsync<TResponse>(string, string, CancellationToken)

Section titled “ InvokeAsync<TResponse>(string, string, CancellationToken)”

Invokes a method with no request body and a response body.

public Task<TResponse> InvokeAsync<TResponse>(string service, string method, CancellationToken ct = default)

service string

The remote service name.

method string

The method to invoke.

ct CancellationToken

Cancellation token.

Task<TResponse>

TResponse

InvokeAsync<TRequest>(string, string, TRequest, CancellationToken)

Section titled “ InvokeAsync<TRequest>(string, string, TRequest, CancellationToken)”

Invokes a method with a request body and no response body.

public Task InvokeAsync<TRequest>(string service, string method, TRequest request, CancellationToken ct = default)

service string

The remote service name.

method string

The method to invoke.

request TRequest

The request payload.

ct CancellationToken

Cancellation token.

Task

TRequest

InvokeAsync<TRequest>(string, string, TRequest, RpcStreamAttachment[], CancellationToken)

Section titled “ InvokeAsync<TRequest>(string, string, TRequest, RpcStreamAttachment[], CancellationToken)”

Invokes a no-response method with a request body that references streamed arguments.

public Task InvokeAsync<TRequest>(string service, string method, TRequest request, RpcStreamAttachment[] streams, CancellationToken ct = default)

service string

method string

request TRequest

streams RpcStreamAttachment[]

ct CancellationToken

Task

TRequest

InvokeAsync(string, string, CancellationToken)

Section titled “ InvokeAsync(string, string, CancellationToken)”

Invokes a method with neither a request nor a response body.

public Task InvokeAsync(string service, string method, CancellationToken ct = default)

service string

The remote service name.

method string

The method to invoke.

ct CancellationToken

Cancellation token.

Task

InvokeAsync<TRequest, TResponse>(string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokeAsync<TRequest, TResponse>(string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public Task<TResponse> InvokeAsync<TRequest, TResponse>(string service, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

Task<TResponse>

TRequest

TResponse

InvokeAsync<TRequest>(string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokeAsync<TRequest>(string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public Task InvokeAsync<TRequest>(string service, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

Task

TRequest

InvokeAsyncEnumerable<T>(string, string, CancellationToken)

Section titled “ InvokeAsyncEnumerable<T>(string, string, CancellationToken)”
public IAsyncEnumerable<T> InvokeAsyncEnumerable<T>(string service, string method, CancellationToken ct = default)

service string

method string

ct CancellationToken

IAsyncEnumerable<T>

T

InvokeAsyncEnumerable<TRequest, T>(string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)

Section titled “ InvokeAsyncEnumerable<TRequest, T>(string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)”
public IAsyncEnumerable<T> InvokeAsyncEnumerable<TRequest, T>(string service, string method, TRequest request, RpcStreamAttachment[]? streams = null, CancellationToken ct = default)

service string

method string

request TRequest

streams RpcStreamAttachment[]?

ct CancellationToken

IAsyncEnumerable<T>

TRequest

T

InvokeAsyncEnumerable<TRequest, T>(string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokeAsyncEnumerable<TRequest, T>(string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public IAsyncEnumerable<T> InvokeAsyncEnumerable<TRequest, T>(string service, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

IAsyncEnumerable<T>

TRequest

T

InvokeAsyncEnumerableAsync<T>(string, string, CancellationToken)

Section titled “ InvokeAsyncEnumerableAsync<T>(string, string, CancellationToken)”
public Task<IAsyncEnumerable<T>> InvokeAsyncEnumerableAsync<T>(string service, string method, CancellationToken ct = default)

service string

method string

ct CancellationToken

Task<IAsyncEnumerable<T>>

T

InvokeAsyncEnumerableAsync<TRequest, T>(string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)

Section titled “ InvokeAsyncEnumerableAsync<TRequest, T>(string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)”
public Task<IAsyncEnumerable<T>> InvokeAsyncEnumerableAsync<TRequest, T>(string service, string method, TRequest request, RpcStreamAttachment[]? streams = null, CancellationToken ct = default)

service string

method string

request TRequest

streams RpcStreamAttachment[]?

ct CancellationToken

Task<IAsyncEnumerable<T>>

TRequest

T

InvokeAsyncEnumerableAsync<TRequest, T>(string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokeAsyncEnumerableAsync<TRequest, T>(string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public Task<IAsyncEnumerable<T>> InvokeAsyncEnumerableAsync<TRequest, T>(string service, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

Task<IAsyncEnumerable<T>>

TRequest

T

InvokeAsyncEnumerableOnInstance<T>(string, string, string, CancellationToken)

Section titled “ InvokeAsyncEnumerableOnInstance<T>(string, string, string, CancellationToken)”
public IAsyncEnumerable<T> InvokeAsyncEnumerableOnInstance<T>(string service, string instanceId, string method, CancellationToken ct = default)

service string

instanceId string

method string

ct CancellationToken

IAsyncEnumerable<T>

T

InvokeAsyncEnumerableOnInstance<TRequest, T>(string, string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)

Section titled “ InvokeAsyncEnumerableOnInstance<TRequest, T>(string, string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)”
public IAsyncEnumerable<T> InvokeAsyncEnumerableOnInstance<TRequest, T>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment[]? streams = null, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

streams RpcStreamAttachment[]?

ct CancellationToken

IAsyncEnumerable<T>

TRequest

T

InvokeAsyncEnumerableOnInstance<TRequest, T>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokeAsyncEnumerableOnInstance<TRequest, T>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public IAsyncEnumerable<T> InvokeAsyncEnumerableOnInstance<TRequest, T>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

IAsyncEnumerable<T>

TRequest

T

InvokeAsyncEnumerableOnInstanceAsync<T>(string, string, string, CancellationToken)

Section titled “ InvokeAsyncEnumerableOnInstanceAsync<T>(string, string, string, CancellationToken)”
public Task<IAsyncEnumerable<T>> InvokeAsyncEnumerableOnInstanceAsync<T>(string service, string instanceId, string method, CancellationToken ct = default)

service string

instanceId string

method string

ct CancellationToken

Task<IAsyncEnumerable<T>>

T

InvokeAsyncEnumerableOnInstanceAsync<TRequest, T>(string, string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)

Section titled “ InvokeAsyncEnumerableOnInstanceAsync<TRequest, T>(string, string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)”
public Task<IAsyncEnumerable<T>> InvokeAsyncEnumerableOnInstanceAsync<TRequest, T>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment[]? streams = null, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

streams RpcStreamAttachment[]?

ct CancellationToken

Task<IAsyncEnumerable<T>>

TRequest

T

InvokeAsyncEnumerableOnInstanceAsync<TRequest, T>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokeAsyncEnumerableOnInstanceAsync<TRequest, T>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public Task<IAsyncEnumerable<T>> InvokeAsyncEnumerableOnInstanceAsync<TRequest, T>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

Task<IAsyncEnumerable<T>>

TRequest

T

InvokeOnInstanceAsync<TRequest, TResponse>(string, string, string, TRequest, CancellationToken)

Section titled “ InvokeOnInstanceAsync<TRequest, TResponse>(string, string, string, TRequest, CancellationToken)”

Invokes a method on a specific remote sub-service instance.

public Task<TResponse> InvokeOnInstanceAsync<TRequest, TResponse>(string service, string instanceId, string method, TRequest request, CancellationToken ct = default)

service string

The remote service name.

instanceId string

The target instance identifier.

method string

The method to invoke.

request TRequest

The request payload.

ct CancellationToken

Cancellation token.

Task<TResponse>

TRequest

TResponse

InvokeOnInstanceAsync<TRequest, TResponse>(string, string, string, TRequest, RpcStreamAttachment[], CancellationToken)

Section titled “ InvokeOnInstanceAsync<TRequest, TResponse>(string, string, string, TRequest, RpcStreamAttachment[], CancellationToken)”
public Task<TResponse> InvokeOnInstanceAsync<TRequest, TResponse>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment[] streams, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

streams RpcStreamAttachment[]

ct CancellationToken

Task<TResponse>

TRequest

TResponse

InvokeOnInstanceAsync<TResponse>(string, string, string, CancellationToken)

Section titled “ InvokeOnInstanceAsync<TResponse>(string, string, string, CancellationToken)”

Invokes an instance-scoped method with no request body and a response body.

public Task<TResponse> InvokeOnInstanceAsync<TResponse>(string service, string instanceId, string method, CancellationToken ct = default)

service string

The remote service name.

instanceId string

The target instance identifier.

method string

The method to invoke.

ct CancellationToken

Cancellation token.

Task<TResponse>

TResponse

InvokeOnInstanceAsync<TRequest>(string, string, string, TRequest, CancellationToken)

Section titled “ InvokeOnInstanceAsync<TRequest>(string, string, string, TRequest, CancellationToken)”

Invokes an instance-scoped method with a request body and no response body.

public Task InvokeOnInstanceAsync<TRequest>(string service, string instanceId, string method, TRequest request, CancellationToken ct = default)

service string

The remote service name.

instanceId string

The target instance identifier.

method string

The method to invoke.

request TRequest

The request payload.

ct CancellationToken

Cancellation token.

Task

TRequest

InvokeOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment[], CancellationToken)

Section titled “ InvokeOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment[], CancellationToken)”
public Task InvokeOnInstanceAsync<TRequest>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment[] streams, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

streams RpcStreamAttachment[]

ct CancellationToken

Task

TRequest

InvokeOnInstanceAsync(string, string, string, CancellationToken)

Section titled “ InvokeOnInstanceAsync(string, string, string, CancellationToken)”

Invokes an instance-scoped method with neither a request nor a response body.

public Task InvokeOnInstanceAsync(string service, string instanceId, string method, CancellationToken ct = default)

service string

The remote service name.

instanceId string

The target instance identifier.

method string

The method to invoke.

ct CancellationToken

Cancellation token.

Task

InvokeOnInstanceAsync<TRequest, TResponse>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokeOnInstanceAsync<TRequest, TResponse>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public Task<TResponse> InvokeOnInstanceAsync<TRequest, TResponse>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

Task<TResponse>

TRequest

TResponse

InvokeOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokeOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public Task InvokeOnInstanceAsync<TRequest>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

Task

TRequest

InvokePipeAsync(string, string, CancellationToken)

Section titled “ InvokePipeAsync(string, string, CancellationToken)”
public Task<Pipe> InvokePipeAsync(string service, string method, CancellationToken ct = default)

service string

method string

ct CancellationToken

Task<Pipe>

InvokePipeAsync<TRequest>(string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)

Section titled “ InvokePipeAsync<TRequest>(string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)”
public Task<Pipe> InvokePipeAsync<TRequest>(string service, string method, TRequest request, RpcStreamAttachment[]? streams = null, CancellationToken ct = default)

service string

method string

request TRequest

streams RpcStreamAttachment[]?

ct CancellationToken

Task<Pipe>

TRequest

InvokePipeAsync<TRequest>(string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokePipeAsync<TRequest>(string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public Task<Pipe> InvokePipeAsync<TRequest>(string service, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

Task<Pipe>

TRequest

InvokePipeOnInstanceAsync(string, string, string, CancellationToken)

Section titled “ InvokePipeOnInstanceAsync(string, string, string, CancellationToken)”
public Task<Pipe> InvokePipeOnInstanceAsync(string service, string instanceId, string method, CancellationToken ct = default)

service string

instanceId string

method string

ct CancellationToken

Task<Pipe>

InvokePipeOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)

Section titled “ InvokePipeOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)”
public Task<Pipe> InvokePipeOnInstanceAsync<TRequest>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment[]? streams = null, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

streams RpcStreamAttachment[]?

ct CancellationToken

Task<Pipe>

TRequest

InvokePipeOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokePipeOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public Task<Pipe> InvokePipeOnInstanceAsync<TRequest>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

Task<Pipe>

TRequest

InvokeStreamAsync(string, string, CancellationToken)

Section titled “ InvokeStreamAsync(string, string, CancellationToken)”
public Task<Stream> InvokeStreamAsync(string service, string method, CancellationToken ct = default)

service string

method string

ct CancellationToken

Task<Stream>

InvokeStreamAsync<TRequest>(string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)

Section titled “ InvokeStreamAsync<TRequest>(string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)”
public Task<Stream> InvokeStreamAsync<TRequest>(string service, string method, TRequest request, RpcStreamAttachment[]? streams = null, CancellationToken ct = default)

service string

method string

request TRequest

streams RpcStreamAttachment[]?

ct CancellationToken

Task<Stream>

TRequest

InvokeStreamAsync<TRequest>(string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokeStreamAsync<TRequest>(string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public Task<Stream> InvokeStreamAsync<TRequest>(string service, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

Task<Stream>

TRequest

InvokeStreamOnInstanceAsync(string, string, string, CancellationToken)

Section titled “ InvokeStreamOnInstanceAsync(string, string, string, CancellationToken)”
public Task<Stream> InvokeStreamOnInstanceAsync(string service, string instanceId, string method, CancellationToken ct = default)

service string

instanceId string

method string

ct CancellationToken

Task<Stream>

InvokeStreamOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)

Section titled “ InvokeStreamOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment[]?, CancellationToken)”
public Task<Stream> InvokeStreamOnInstanceAsync<TRequest>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment[]? streams = null, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

streams RpcStreamAttachment[]?

ct CancellationToken

Task<Stream>

TRequest

InvokeStreamOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)

Section titled “ InvokeStreamOnInstanceAsync<TRequest>(string, string, string, TRequest, RpcStreamAttachment, CancellationToken)”
public Task<Stream> InvokeStreamOnInstanceAsync<TRequest>(string service, string instanceId, string method, TRequest request, RpcStreamAttachment stream, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

stream RpcStreamAttachment

ct CancellationToken

Task<Stream>

TRequest

InvokeValueAsync<TRequest, TResponse>(string, string, TRequest, CancellationToken)

Section titled “ InvokeValueAsync<TRequest, TResponse>(string, string, TRequest, CancellationToken)”
public ValueTask<TResponse> InvokeValueAsync<TRequest, TResponse>(string service, string method, TRequest request, CancellationToken ct = default)

service string

method string

request TRequest

ct CancellationToken

ValueTask<TResponse>

TRequest

TResponse

InvokeValueAsync<TResponse>(string, string, CancellationToken)

Section titled “ InvokeValueAsync<TResponse>(string, string, CancellationToken)”
public ValueTask<TResponse> InvokeValueAsync<TResponse>(string service, string method, CancellationToken ct = default)

service string

method string

ct CancellationToken

ValueTask<TResponse>

TResponse

InvokeValueAsync<TRequest>(string, string, TRequest, CancellationToken)

Section titled “ InvokeValueAsync<TRequest>(string, string, TRequest, CancellationToken)”
public ValueTask InvokeValueAsync<TRequest>(string service, string method, TRequest request, CancellationToken ct = default)

service string

method string

request TRequest

ct CancellationToken

ValueTask

TRequest

InvokeValueAsync(string, string, CancellationToken)

Section titled “ InvokeValueAsync(string, string, CancellationToken)”
public ValueTask InvokeValueAsync(string service, string method, CancellationToken ct = default)

service string

method string

ct CancellationToken

ValueTask

InvokeValueOnInstanceAsync<TRequest, TResponse>(string, string, string, TRequest, CancellationToken)

Section titled “ InvokeValueOnInstanceAsync<TRequest, TResponse>(string, string, string, TRequest, CancellationToken)”
public ValueTask<TResponse> InvokeValueOnInstanceAsync<TRequest, TResponse>(string service, string instanceId, string method, TRequest request, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

ct CancellationToken

ValueTask<TResponse>

TRequest

TResponse

InvokeValueOnInstanceAsync<TResponse>(string, string, string, CancellationToken)

Section titled “ InvokeValueOnInstanceAsync<TResponse>(string, string, string, CancellationToken)”
public ValueTask<TResponse> InvokeValueOnInstanceAsync<TResponse>(string service, string instanceId, string method, CancellationToken ct = default)

service string

instanceId string

method string

ct CancellationToken

ValueTask<TResponse>

TResponse

InvokeValueOnInstanceAsync<TRequest>(string, string, string, TRequest, CancellationToken)

Section titled “ InvokeValueOnInstanceAsync<TRequest>(string, string, string, TRequest, CancellationToken)”
public ValueTask InvokeValueOnInstanceAsync<TRequest>(string service, string instanceId, string method, TRequest request, CancellationToken ct = default)

service string

instanceId string

method string

request TRequest

ct CancellationToken

ValueTask

TRequest

InvokeValueOnInstanceAsync(string, string, string, CancellationToken)

Section titled “ InvokeValueOnInstanceAsync(string, string, string, CancellationToken)”
public ValueTask InvokeValueOnInstanceAsync(string service, string instanceId, string method, CancellationToken ct = default)

service string

instanceId string

method string

ct CancellationToken

ValueTask

Over(IRpcChannel, ISerializer, RpcPeerOptions?)

Section titled “ Over(IRpcChannel, ISerializer, RpcPeerOptions?)”

Creates a peer over channel. Call DotBoxD.Services.Peer.RpcPeer.Start to begin the read loop (invoking a method also starts it implicitly).

public static RpcPeer Over(IRpcChannel channel, ISerializer serializer, RpcPeerOptions? options = null)

channel IRpcChannel

serializer ISerializer

options RpcPeerOptions?

RpcPeer

Provides a local implementation of TService for the other side to call.

public RpcPeer Provide<TService>(TService implementation) where TService : class

implementation TService

RpcPeer

TService

Provided services are callable by any peer on this channel; enforce access control at the transport or application layer.

Resolves and provides a local implementation of TService from the configured service provider.

public RpcPeer Provide<TService>() where TService : class

RpcPeer

TService

Provides a service via an explicit dispatcher.

public RpcPeer Provide(IServiceDispatcher dispatcher)

dispatcher IServiceDispatcher

RpcPeer

Releases a stream id reservation that was never attached to an RPC request.

public void ReleaseStream(RpcStreamHandle handle)

handle RpcStreamHandle

Reserves a stream id for a streamed argument sent by this peer.

public RpcStreamHandle ReserveStream(RpcStreamKind kind)

kind RpcStreamKind

RpcStreamHandle

Begins the read loop. Idempotent; safe to call from a fluent chain.

public RpcPeer Start()

RpcPeer

Raised when the read loop ends after a remote close or read error; local close/dispose does not raise it. Handlers run on the teardown path and should not block.

public event EventHandler<RpcDisconnectedEventArgs>? Disconnected

EventHandler<RpcDisconnectedEventArgs>?

Raised when an inbound request fails outside the service method itself — for example when the response or error frame cannot be sent. Exceptions thrown by a provided service method are not surfaced here; they are converted into an Error frame returned to the caller.

public event EventHandler<RpcDispatchErrorEventArgs>? DispatchError

EventHandler<RpcDispatchErrorEventArgs>?

Raised when a malformed or unsupported protocol frame is observed.

public event EventHandler<RpcProtocolErrorEventArgs>? ProtocolError

EventHandler<RpcProtocolErrorEventArgs>?

Raised when the read loop fails with a non-cancellation exception.

public event EventHandler<RpcReadErrorEventArgs>? ReadError

EventHandler<RpcReadErrorEventArgs>?