@hotmeshio/hotmesh
Version:
Serverless Workflow
91 lines (90 loc) • 2.53 kB
TypeScript
/// <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 };