31 lines
848 B
TypeScript
31 lines
848 B
TypeScript
import { EventEmitter } from "events";
|
|
import { ICommunicationInterface } from "../dispatcher/nopeDispatcher";
|
|
import { getLogger } from "../logger/getLogger";
|
|
|
|
|
|
/**
|
|
* A Communication Layer for the Dispatchers.
|
|
* Here, only a Events are used.
|
|
*
|
|
* @export
|
|
* @class EventLayer
|
|
* @implements {ICommunicationInterface}
|
|
*/
|
|
export class EventLayer implements ICommunicationInterface {
|
|
off(event: string, cb: (...args: any[]) => void) {
|
|
this._emitter.off(event, cb);
|
|
}
|
|
|
|
protected _emitter = new EventEmitter();
|
|
protected _logger = getLogger('info', 'Event-Layer');
|
|
|
|
on(event: string, cb: (...args: any[]) => void) {
|
|
// this._logger.debug('subscribed ' + event);
|
|
this._emitter.on(event, cb);
|
|
}
|
|
|
|
send(event: string, data: any): void {
|
|
// this._logger.debug('emitting ' + event);
|
|
this._emitter.emit(event, data)
|
|
}
|
|
} |