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) } }