Table of Contents

Class AggregatedReflectionResolver

Namespace
Virtufin.Api.Services
Assembly
Virtufin.Api.dll

Resolves gRPC server reflection requests against two descriptor sources: the gateway's own compiled-in protos (Gateway/Config/State/Pubsub) and the backend descriptor caches maintained by GrpcReflectionService. This is what lets clients reflect on backend services (virtufin.WorkManager, virtufin.WebSocketManager, ...) through the gateway, which does not compile their protos in. Besides fully-qualified symbols, the registered service name from services.json (e.g. "workmanager") is accepted as a FileContainingSymbol alias for the backend's whole descriptor set.

public class AggregatedReflectionResolver
Inheritance
AggregatedReflectionResolver
Inherited Members

Constructors

AggregatedReflectionResolver(GrpcReflectionService, ServicesConfiguration, ILogger<AggregatedReflectionResolver>)

public AggregatedReflectionResolver(GrpcReflectionService reflectionService, ServicesConfiguration servicesConfiguration, ILogger<AggregatedReflectionResolver> logger)

Parameters

reflectionService GrpcReflectionService
servicesConfiguration ServicesConfiguration
logger ILogger<AggregatedReflectionResolver>

Methods

FileByFilenameAsync(string, CancellationToken)

Resolves a FileByFilename request against own and backend descriptor sets.

public Task<ReflectionAnswer> FileByFilenameAsync(string fileName, CancellationToken cancellationToken)

Parameters

fileName string
cancellationToken CancellationToken

Returns

Task<ReflectionAnswer>

FileContainingSymbolAsync(string, CancellationToken)

Resolves a FileContainingSymbol request: own descriptors first, then the registered-service-name alias, then a symbol search across backends.

public Task<ReflectionAnswer> FileContainingSymbolAsync(string symbol, CancellationToken cancellationToken)

Parameters

symbol string
cancellationToken CancellationToken

Returns

Task<ReflectionAnswer>

ListServicesAsync(CancellationToken)

Full names of all reflectable services: the gateway's own plus every reachable backend's. Unreachable backends are skipped (best effort).

public Task<ReflectionAnswer> ListServicesAsync(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

Returns

Task<ReflectionAnswer>

Unimplemented(string)

public static ReflectionAnswer Unimplemented(string what)

Parameters

what string

Returns

ReflectionAnswer