mobileapplicationPassvault/node_modules/@grpc/grpc-js/build/src/resolving-load-balancer.d.ts

68 lines
2.8 KiB
TypeScript

import { ChannelControlHelper, LoadBalancer, LoadBalancingConfig } from './load-balancer';
import { ServiceConfig } from './service-config';
import { ConfigSelector } from './resolver';
import { StatusObject } from './call-interface';
import { SubchannelAddress } from './subchannel-address';
import { GrpcUri } from './uri-parser';
import { ChannelOptions } from './channel-options';
export interface ResolutionCallback {
(serviceConfig: ServiceConfig, configSelector: ConfigSelector): void;
}
export interface ResolutionFailureCallback {
(status: StatusObject): void;
}
export declare class ResolvingLoadBalancer implements LoadBalancer {
private readonly target;
private readonly channelControlHelper;
private readonly onSuccessfulResolution;
private readonly onFailedResolution;
/**
* The resolver class constructed for the target address.
*/
private readonly innerResolver;
private readonly childLoadBalancer;
private latestChildState;
private latestChildPicker;
/**
* This resolving load balancer's current connectivity state.
*/
private currentState;
private readonly defaultServiceConfig;
/**
* The service config object from the last successful resolution, if
* available. A value of null indicates that we have not yet received a valid
* service config from the resolver.
*/
private previousServiceConfig;
/**
* The backoff timer for handling name resolution failures.
*/
private readonly backoffTimeout;
/**
* Indicates whether we should attempt to resolve again after the backoff
* timer runs out.
*/
private continueResolving;
/**
* Wrapper class that behaves like a `LoadBalancer` and also handles name
* resolution internally.
* @param target The address of the backend to connect to.
* @param channelControlHelper `ChannelControlHelper` instance provided by
* this load balancer's owner.
* @param defaultServiceConfig The default service configuration to be used
* if none is provided by the name resolver. A `null` value indicates
* that the default behavior should be the default unconfigured behavior.
* In practice, that means using the "pick first" load balancer
* implmentation
*/
constructor(target: GrpcUri, channelControlHelper: ChannelControlHelper, channelOptions: ChannelOptions, onSuccessfulResolution: ResolutionCallback, onFailedResolution: ResolutionFailureCallback);
private updateResolution;
private updateState;
private handleResolutionFailure;
exitIdle(): void;
updateAddressList(addressList: SubchannelAddress[], lbConfig: LoadBalancingConfig | null): never;
resetBackoff(): void;
destroy(): void;
getTypeName(): string;
}