-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathipc-service.d.ts
61 lines (61 loc) · 3.11 KB
/
ipc-service.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/// <reference path="../@types/platform-defs/w3n.d.ts" />
declare type IncomingConnection = web3n.rpc.service.IncomingConnection;
declare type PassedDatum = web3n.rpc.PassedDatum;
declare type Observer<T> = web3n.Observer<T>;
export declare type HandleObservingCall = (obs: Observer<any>, ...requestArgs: any[]) => (() => void);
export declare type HandleReqReplyCall = (...requestArgs: any[]) => Promise<any>;
export interface TransformOpts {
unpackRequest?: ((req: PassedDatum | undefined) => any[]) | 'noop';
packReply?: ((reply: any) => PassedDatum | undefined) | 'noop';
}
declare class ConnectionState {
private readonly disconnect;
private readonly calls;
private isRunning;
constructor(disconnect: () => void);
acceptsMsgs(): boolean;
stop(): void;
hasCall(callNum: number): boolean;
cancelCall(callNum: number): void;
completeCall(callNum: number): void;
registerReqReplyCall(callNum: number): void;
registerObservableCall(callNum: number, cancel: () => void): void;
}
export declare abstract class IPCWrap {
readonly srvName: string;
protected readonly connections: Map<web3n.rpc.service.IncomingConnection, ConnectionState>;
private readonly methods;
constructor(srvName: string);
addReqReplyMethod(method: string, srv: object | undefined, func: HandleReqReplyCall, transforms?: TransformOpts): void;
exposeReqReplyMethods<T extends object>(srv: T, methods: (keyof T)[], transforms?: {
[method in keyof T]: TransformOpts;
}): void;
addObservableMethod(method: string, srv: object | undefined, func: HandleObservingCall, transforms?: TransformOpts): void;
exposeObservableMethods<T extends object>(srv: T, methods: (keyof T)[], transforms?: {
[method in keyof T]: TransformOpts;
}): void;
private onMsg;
private callReqReplyHandler;
private callObsHandler;
startIPC(): () => void;
stopIPC(): void;
protected onConnection(connection: IncomingConnection): Promise<void>;
protected onConnectionCompletion(connection: IncomingConnection, connectionState: ConnectionState): Promise<void>;
protected onConnectionError(connection: IncomingConnection, connectionState: ConnectionState, err: any): Promise<void>;
protected abstract onListeningCompletion(): Promise<void>;
protected abstract onListeningError(err: any): Promise<void>;
}
export declare class SingleConnectionIPCWrap extends IPCWrap {
constructor(srvName: string);
protected onListeningCompletion(): Promise<void>;
protected onListeningError(err: any): Promise<void>;
protected onConnectionCompletion(connection: IncomingConnection, connectionState: ConnectionState): Promise<void>;
protected onConnectionError(connection: IncomingConnection, connectionState: ConnectionState, err: any): Promise<void>;
}
export declare class MultiConnectionIPCWrap extends IPCWrap {
constructor(srvName: string);
protected onListeningCompletion(): Promise<void>;
protected onListeningError(err: any): Promise<void>;
protected onConnectionError(connection: IncomingConnection, connectionState: ConnectionState, err: any): Promise<void>;
}
export {};