UNPKG

@jbrowse/core

Version:

JBrowse 2 core libraries used by plugins

44 lines (43 loc) 1.67 kB
import type PluginManager from '../PluginManager'; import type { AnyConfigurationModel } from '../configuration'; export interface WorkerHandle { status?: string; error?: unknown; on?: (channel: string, callback: (message: unknown) => void) => void; off?: (channel: string, callback: (message: unknown) => void) => void; destroy(): void; call(functionName: string, args?: unknown, options?: { statusCallback?(message: string): void; timeout?: number; rpcDriverClassName: string; }): Promise<unknown>; } export interface RpcDriverConstructorArgs { config: AnyConfigurationModel; } declare class LazyWorker { driver: BaseRpcDriver; workerP?: Promise<WorkerHandle> | undefined; constructor(driver: BaseRpcDriver); getWorker(): Promise<WorkerHandle>; } export default abstract class BaseRpcDriver { abstract name: string; private lastWorkerAssignment; private workerAssignments; abstract makeWorker(): Promise<WorkerHandle>; private workerPool?; maxPingTime: number; workerCheckFrequency: number; config: AnyConfigurationModel; constructor(args: RpcDriverConstructorArgs); filterArgs<THING_TYPE>(thing: THING_TYPE, sessionId: string): THING_TYPE; remoteAbort(sessionId: string, functionName: string, stopTokenId: number): Promise<void>; createWorkerPool(): LazyWorker[]; getWorkerPool(): LazyWorker[]; getWorker(sessionId: string): Promise<WorkerHandle>; call(pluginManager: PluginManager, sessionId: string, functionName: string, args: { statusCallback?: (message: unknown) => void; }, options?: {}): Promise<unknown>; } export {};