Table of Contents

Interface IEndpoint

Namespace
The.RPC
Assembly
Instagile.dll

Dynamically typed RPC mechanism, used to transport serialised requests and security tokens.

public interface IEndpoint

Remarks

Remote/"transport" endpoint plugins can be implemented anywhere, but any local endpoint should use The.Persistence.SecureStore. Endpoints are only used within an IEntityStore, so this doesn't allow for a licensing bypass; it would permit a server developer to disable user security, but they can do that trivially using a null auth plugin. An IoC container (IServiceProvider) is optional; if provided, it will be used to look up additional RPCs.

Properties

Description

Human-readable name.

string Description { get; }

Property Value

string

Methods

ConnectAsync(byte[], CancellationToken)

Proves the client's identity to the server in exchange for a symmetric session key.

Task<byte[]> ConnectAsync(byte[] ticket, CancellationToken token)

Parameters

ticket byte[]
token CancellationToken

Returns

Task<byte[]>

Serialised Response<T>.

ExecuteAsync(string, Message, byte[]?, CancellationToken)

Calls an untyped procedure - this may involve local lookup, passthrough or decoration.

Task<Message> ExecuteAsync(string name, Message request, byte[]? ticket, CancellationToken cancellationToken)

Parameters

name string
request Message
ticket byte[]
cancellationToken CancellationToken

Returns

Task<Message>

VisitAsync<T, U>(AnonymousProcedure<T, U>, Message, CancellationToken)

Calls a typed procedure on a local or remote host.

Task<Message> VisitAsync<T, U>(AnonymousProcedure<T, U> proc, Message request, CancellationToken token) where T : notnull

Parameters

proc AnonymousProcedure<T, U>
request Message
token CancellationToken

Returns

Task<Message>

Serialised Response<T>.

Type Parameters

T
U

VisitAsync<T, U>(Procedure<T, U>, Message, byte[], CancellationToken)

Calls a typed procedure on a local or remote host.

Task<Message> VisitAsync<T, U>(Procedure<T, U> proc, Message request, byte[] ticket, CancellationToken token) where T : notnull

Parameters

proc Procedure<T, U>
request Message
ticket byte[]
token CancellationToken

Returns

Task<Message>

Serialised Response<T>.

Type Parameters

T
U