/** @packageDocumentation * Komponenten Schnittstelle * * Letzte Aenderung: 28.06.2021 * Status: rot * * @module core/component * @author SB */ import { EventFunc } from '../event/event-function.type'; import { IMessage } from './../message/message.interface'; import { IPluginGroup } from '../plugin/plugin-group.interface'; export declare type ComponentSendMessageFunc = (aMessage: IMessage) => number; export declare type ComponentHandleMessageFunc = (aMessage: IMessage) => boolean; /** * Definiert die Schnittstelle fuer eine Komponente */ export interface IComponent extends IPluginGroup { getVersion(): string; connect(): number; isConnect(): boolean; getNetType(): string; setSendMessageFunc(aSendMessageFunc: ComponentSendMessageFunc): number; sendMessage(aMessage: IMessage): number; /** * Nachrichten verarbeiten * * @param {IMessage} aMessage - zu verarbeitende Nachricht * * @return Rueckgabe, ob Nachricht verarbeitet wurde (true) oder nicht (false) */ handleMessage(aMessage: IMessage): boolean; /** * Rueckgabe der Nachrichtenverarbeitungsfunktion * * @return {PluginHandleMessageFunc} handleMessageFunc */ getHandleMessageFunc(): ComponentHandleMessageFunc; addEventListener(aPluginName: string, aEventName: string, aEventFunc: EventFunc): number; removeEventListener(aPluginName: string, aEventName: string): number; }