47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
|
import { BasicIPCHandler } from "../ipc/BrowserIPC";
|
||
|
export interface MethodProxyInvokeData {
|
||
|
method_name: string;
|
||
|
arguments: any[];
|
||
|
promise_id: string;
|
||
|
}
|
||
|
export interface MethodProxyResultData {
|
||
|
promise_id: string;
|
||
|
result: any;
|
||
|
success: boolean;
|
||
|
}
|
||
|
export interface MethodProxyCallback {
|
||
|
promise: Promise<any>;
|
||
|
promise_id: string;
|
||
|
resolve: (object: any) => any;
|
||
|
reject: (object: any) => any;
|
||
|
}
|
||
|
export declare type MethodProxyConnectParameters = {
|
||
|
channel_id: string;
|
||
|
client_id: string;
|
||
|
};
|
||
|
export declare abstract class MethodProxy {
|
||
|
readonly ipc_handler: BasicIPCHandler;
|
||
|
private _ipc_channel;
|
||
|
private _ipc_parameters;
|
||
|
private readonly _local;
|
||
|
private readonly _slave;
|
||
|
private _connected;
|
||
|
private _proxied_methods;
|
||
|
private _proxied_callbacks;
|
||
|
protected constructor(ipc_handler: BasicIPCHandler, connect_params?: MethodProxyConnectParameters);
|
||
|
protected setup(): void;
|
||
|
protected finalize(): void;
|
||
|
protected register_method<R>(method: (...args: any[]) => Promise<R> | string): void;
|
||
|
private _handle_message;
|
||
|
private _handle_finalize;
|
||
|
private _handle_remote_callback;
|
||
|
private _send_result;
|
||
|
private _handle_invoke;
|
||
|
private _handle_result;
|
||
|
generate_connect_parameters(): MethodProxyConnectParameters;
|
||
|
is_slave(): boolean;
|
||
|
is_master(): boolean;
|
||
|
protected abstract on_connected(): any;
|
||
|
protected abstract on_disconnected(): any;
|
||
|
}
|