UNPKG

@hotmeshio/hotmesh

Version:

Serverless Workflow

91 lines (90 loc) 2.53 kB
/// <reference types="node" /> import { EngineService } from '../engine'; import { ILogger } from '../logger'; import { StoreService } from '../store'; import { SubService } from '../sub'; import { CacheMode } from '../../types/cache'; import { HotMeshConfig } from '../../types/hotmesh'; import { ProviderClient, ProviderTransaction } from '../../types/provider'; import { QuorumMessage, QuorumMessageCallback, QuorumProfile, RollCallMessage, SubscriptionCallback } from '../../types/quorum'; declare class QuorumService { namespace: string; appId: string; guid: string; engine: EngineService; profiles: QuorumProfile[]; store: StoreService<ProviderClient, ProviderTransaction> | null; subscribe: SubService<ProviderClient> | null; logger: ILogger; cacheMode: CacheMode; untilVersion: string | null; quorum: number | null; callbacks: QuorumMessageCallback[]; rollCallInterval: NodeJS.Timeout; /** * @private */ constructor(); /** * @private */ static init(namespace: string, appId: string, guid: string, config: HotMeshConfig, engine: EngineService, logger: ILogger): Promise<QuorumService>; /** * @private */ verifyQuorumFields(config: HotMeshConfig): void; /** * @private */ initStoreChannel(store: ProviderClient): Promise<void>; /** * @private */ initSubChannel(sub: ProviderClient, store: ProviderClient): Promise<void>; /** * @private */ subscriptionHandler(): SubscriptionCallback; /** * @private */ sayPong(appId: string, guid: string, originator: string, details?: boolean): Promise<void>; /** * A quorum-wide command to request a quorum count. * @private */ requestQuorum(delay?: number, details?: boolean): Promise<number>; /** * @private */ doRollCall(message: RollCallMessage): Promise<void>; /** * @private */ cancelRollCall(): void; /** * @private */ stop(): void; /** * @private */ pub(quorumMessage: QuorumMessage): Promise<boolean>; /** * @private */ sub(callback: QuorumMessageCallback): Promise<void>; /** * @private */ unsub(callback: QuorumMessageCallback): Promise<void>; /** * @private */ rollCall(delay?: number): Promise<QuorumProfile[]>; /** * @private */ activate(version: string, delay?: number, count?: number): Promise<boolean>; } export { QuorumService };