Class AggregatedReflectionResolver
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
reflectionServiceGrpcReflectionServiceservicesConfigurationServicesConfigurationloggerILogger<AggregatedReflectionResolver>
Methods
FileByFilenameAsync(string, CancellationToken)
Resolves a FileByFilename request against own and backend descriptor sets.
public Task<ReflectionAnswer> FileByFilenameAsync(string fileName, CancellationToken cancellationToken)
Parameters
fileNamestringcancellationTokenCancellationToken
Returns
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
symbolstringcancellationTokenCancellationToken
Returns
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
cancellationTokenCancellationToken
Returns
Unimplemented(string)
public static ReflectionAnswer Unimplemented(string what)
Parameters
whatstring