123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- import { ChannelCredentials } from './channel-credentials';
- import { ChannelOptions } from './channel-options';
- import { PickResult } from './picker';
- import { Metadata } from './metadata';
- import { CallConfig } from './resolver';
- import { ServerSurfaceCall } from './server-call';
- import { ConnectivityState } from './connectivity-state';
- import { ChannelRef } from './channelz';
- import { LoadBalancingCall } from './load-balancing-call';
- import { CallCredentials } from './call-credentials';
- import { Call, StatusObject } from './call-interface';
- import { Deadline } from './deadline';
- import { ResolvingCall } from './resolving-call';
- import { RetryingCall } from './retrying-call';
- import { BaseSubchannelWrapper, SubchannelInterface } from './subchannel-interface';
- interface NoneConfigResult {
- type: 'NONE';
- }
- interface SuccessConfigResult {
- type: 'SUCCESS';
- config: CallConfig;
- }
- interface ErrorConfigResult {
- type: 'ERROR';
- error: StatusObject;
- }
- type GetConfigResult = NoneConfigResult | SuccessConfigResult | ErrorConfigResult;
- declare class ChannelSubchannelWrapper extends BaseSubchannelWrapper implements SubchannelInterface {
- private channel;
- private refCount;
- private subchannelStateListener;
- constructor(childSubchannel: SubchannelInterface, channel: InternalChannel);
- ref(): void;
- unref(): void;
- }
- export declare class InternalChannel {
- private readonly credentials;
- private readonly options;
- private readonly resolvingLoadBalancer;
- private readonly subchannelPool;
- private connectivityState;
- private currentPicker;
- /**
- * Calls queued up to get a call config. Should only be populated before the
- * first time the resolver returns a result, which includes the ConfigSelector.
- */
- private configSelectionQueue;
- private pickQueue;
- private connectivityStateWatchers;
- private readonly defaultAuthority;
- private readonly filterStackFactory;
- private readonly target;
- /**
- * This timer does not do anything on its own. Its purpose is to hold the
- * event loop open while there are any pending calls for the channel that
- * have not yet been assigned to specific subchannels. In other words,
- * the invariant is that callRefTimer is reffed if and only if pickQueue
- * is non-empty.
- */
- private readonly callRefTimer;
- private configSelector;
- /**
- * This is the error from the name resolver if it failed most recently. It
- * is only used to end calls that start while there is no config selector
- * and the name resolver is in backoff, so it should be nulled if
- * configSelector becomes set or the channel state becomes anything other
- * than TRANSIENT_FAILURE.
- */
- private currentResolutionError;
- private readonly retryBufferTracker;
- private keepaliveTime;
- private readonly wrappedSubchannels;
- private callCount;
- private idleTimer;
- private readonly idleTimeoutMs;
- private lastActivityTimestamp;
- private readonly channelzEnabled;
- private readonly originalTarget;
- private readonly channelzRef;
- private readonly channelzTrace;
- private readonly callTracker;
- private readonly childrenTracker;
- /**
- * Randomly generated ID to be passed to the config selector, for use by
- * ring_hash in xDS. An integer distributed approximately uniformly between
- * 0 and MAX_SAFE_INTEGER.
- */
- private readonly randomChannelId;
- constructor(target: string, credentials: ChannelCredentials, options: ChannelOptions);
- private getChannelzInfo;
- private trace;
- private callRefTimerRef;
- private callRefTimerUnref;
- private removeConnectivityStateWatcher;
- private updateState;
- throttleKeepalive(newKeepaliveTime: number): void;
- removeWrappedSubchannel(wrappedSubchannel: ChannelSubchannelWrapper): void;
- doPick(metadata: Metadata, extraPickInfo: {
- [key: string]: string;
- }): PickResult;
- queueCallForPick(call: LoadBalancingCall): void;
- getConfig(method: string, metadata: Metadata): GetConfigResult;
- queueCallForConfig(call: ResolvingCall): void;
- private enterIdle;
- private startIdleTimeout;
- private maybeStartIdleTimer;
- private onCallStart;
- private onCallEnd;
- createLoadBalancingCall(callConfig: CallConfig, method: string, host: string, credentials: CallCredentials, deadline: Deadline): LoadBalancingCall;
- createRetryingCall(callConfig: CallConfig, method: string, host: string, credentials: CallCredentials, deadline: Deadline): RetryingCall;
- createInnerCall(callConfig: CallConfig, method: string, host: string, credentials: CallCredentials, deadline: Deadline): LoadBalancingCall | RetryingCall;
- createResolvingCall(method: string, deadline: Deadline, host: string | null | undefined, parentCall: ServerSurfaceCall | null, propagateFlags: number | null | undefined): ResolvingCall;
- close(): void;
- getTarget(): string;
- getConnectivityState(tryToConnect: boolean): ConnectivityState;
- watchConnectivityState(currentState: ConnectivityState, deadline: Date | number, callback: (error?: Error) => void): void;
- /**
- * Get the channelz reference object for this channel. The returned value is
- * garbage if channelz is disabled for this channel.
- * @returns
- */
- getChannelzRef(): ChannelRef;
- createCall(method: string, deadline: Deadline, host: string | null | undefined, parentCall: ServerSurfaceCall | null, propagateFlags: number | null | undefined): Call;
- getOptions(): ChannelOptions;
- }
- export {};
|