UNPKG

nxkit

Version:

This is a collection of tools, independent of any other libraries

115 lines (114 loc) 4.38 kB
import { URL } from '../path'; import * as wss from '../ws/service'; import * as cli from '../ws/cli'; import * as _center from './_center'; import { ConversationBasic } from '../ws/_conv'; declare type IMPL = _center.FastMessageTransferCenter_IMPL; export interface QueryResult { time: Date; uuid: string; } export declare abstract class FNode { protected m_initTime: number; protected m_center: IMPL; abstract get id(): string; abstract get publishURL(): URL | null; get initTime(): number; get center(): _center.FastMessageTransferCenter_IMPL; constructor(center: IMPL); initialize(initTime?: number): Promise<void>; destroy(): Promise<void>; abstract publish(event: string, data: any): Promise<void>; abstract broadcast(event: string, data: any, id: string): Promise<void>; abstract triggerTo(id: string, event: string, data: any, sender: string): Promise<void>; abstract callTo(id: string, method: string, data: any, timeout: number, sender: string): Promise<any>; abstract sendTo(id: string, method: string, data: any, sender: string): Promise<void>; abstract user(id: string): Promise<Dict<any>>; abstract query(id: string, more?: boolean): Promise<QueryResult | boolean | null>; } /** * @class FMTNodeLocal */ export declare class FNodeLocal extends FNode { get id(): string; get publishURL(): URL | null; publish(event: string, data: any): Promise<void>; broadcast(event: string, data: any, id: string): Promise<void>; triggerTo(id: string, event: string, data: any, sender: string): Promise<void>; callTo(id: string, method: string, data: any, timeout: number, sender: string): Promise<any>; sendTo(id: string, method: string, data: any, sender: string): Promise<void>; user(id: string): Promise<Dict<any>>; query(id: string, more?: boolean): Promise<boolean | { time: Date; uuid: string; } | null>; } /** * @class FNodeRemote */ export declare class FNodeRemote extends FNode { private m_impl; private m_node_id; private m_isInit; constructor(center: IMPL, impl: FNodeRemoteIMPL, id: string); initialize(initTime?: number): Promise<void>; destroy(): Promise<void>; get id(): string; get publishURL(): URL | null; publish(event: string, data: any): Promise<void>; broadcast(event: string, data: any, id: string): Promise<void>; triggerTo(id: string, event: string, data: any, sender: string): Promise<any>; callTo(id: string, method: string, data: any, timeout: number, sender: string): Promise<any>; sendTo(id: string, method: string, data: any, sender: string): Promise<any>; user(id: string): Promise<any>; query(id: string, more?: boolean): Promise<any>; } /** * @class FNodeRemoteIMPL */ export declare abstract class FNodeRemoteIMPL { abstract get conv(): ConversationBasic; abstract get center(): IMPL; abstract get thatFnode(): URL | null; abstract get fnode(): FNode; abstract call(method: string, data?: any, timeout?: number, sender?: string): Promise<any>; abstract send(method: string, data?: any, sender?: string): Promise<void>; publish([event, data]: [string, any]): void; broadcast([event, data, id]: [string, any, string]): void; triggerTo([id, event, data, sender]: [string, string, any, string]): Promise<void>; callTo([id, method, data, timeout, sender]: [string, string, any, number, string]): Promise<any>; sendTo([id, method, data, sender]: [string, string, any, string]): Promise<void>; user([id]: [string]): Dict<any>; query([id, more]: [string, boolean]): boolean | { time: Date; uuid: string; } | null; } /** * @class FNodeRemoteService */ export declare class FNodeRemoteService extends wss.WSService { private m_center; private m_that_fnode; private m_fnode; get thatFnode(): URL | null; get center(): IMPL; get fnode(): FNode; requestAuth(): Promise<boolean>; load(): Promise<void>; destroy(): Promise<void>; } /** * @class FNodeRemoteClient */ export declare class FNodeRemoteClient extends cli.WSClient { private m_center; private m_that_fnode; private m_fnode; get center(): IMPL; get thatFnode(): URL; get fnode(): FNode; constructor(center: IMPL, fnode?: string); _init(): Promise<void>; } export {};