pandora
Version:
77 lines (76 loc) • 2.08 kB
TypeScript
import { ServiceOptions, ServiceRepresentation } from '../domain';
import ServiceLogger from './ServiceLogger';
import { Service } from '../domain';
import { WorkerContextAccessor } from '../application/WorkerContextAccessor';
/**
* Class SimpleServiceCore
*/
export declare class ServiceCore {
protected ImplClass: any;
protected impl: Service;
protected options: ServiceOptions;
protected subscribeHandler: (name: string, listener: any) => Promise<any>;
protected unsubscribeHandler: (name: string, listener?: any) => Promise<any>;
logger: ServiceLogger;
readonly context: WorkerContextAccessor;
readonly deps: {};
readonly representation: ServiceRepresentation;
readonly serviceName: string;
readonly config: any;
constructor(options: ServiceOptions, ImplClass: any);
/**
* Get Class of implementation
* @return {any}
*/
protected getImplClass(): any;
/**
* Instantiate service
* @return {Service}
*/
instantiate(): Service;
/**
* Start service
* @return {Promise<void>}
*/
start(): Promise<void>;
/**
* Stop service
* @return {Promise<void>}
*/
stop(): Promise<void>;
/**
* Publish this service to IPC HUB
* @return {Promise<void>}
*/
publish(): Promise<void>;
/**
* Subscribe a event
* @param reg
* @param listener
* @return {Promise<any>}
*/
subscribe(reg: any, listener: any): Promise<any>;
/**
* Cancel subscribe a event
* @param reg
* @param listener
* @return {Promise<any>}
*/
unsubscribe(reg: any, listener?: any): Promise<any>;
/**
* Get service's implementation object
* @return {Service}
*/
getService(): Service;
/**
* Get service's identify, equal service's name now
* @return {string}
*/
getServiceId(): string;
/**
* Get a dependency service's implementation object by service's ID (name)
* @param name
* @return {any}
*/
getDependency(name: any): any;
}