UNPKG

@curium.rocks/udp-emitter

Version:

A IDataEmitter implementation that wraps UDP transports

73 lines (72 loc) 2.11 kB
/// <reference types="node" /> import { BaseEmitter, ICommand, IDataEvent, IExecutionResult, ISettings, ITraceableAction } from '@curium.rocks/data-emitter-base'; import { IStatusEvent } from '@curium.rocks/data-emitter-base/build/src/dataEmitter'; import { RemoteInfo, Socket } from 'dgram'; /** * UDP Data Emitter, this emits messages received directly without any modification */ export declare class UDPEmitter extends BaseEmitter { private socket; private lastBuffer?; /** * * @param {string} id unique identifier for emitter * @param {string} name display name of emitter * @param {string} desc longer description of emitter * @param {Socket} udpSocket udp socket object */ constructor(id: string, name: string, desc: string, socket: Socket); /** * Bind the socket event handlers */ protected bindHandlers(): void; /** * Release event handlers */ protected releaseHandlers(): void; /** * error handler * @param {Error} error */ protected onError(error: Error): void; /** * * @param {Buffer} message received message * @param {RemoteInfo} info */ protected onMessage(message: Buffer, info: RemoteInfo): void; /** * handler for when socket enters listening state */ protected onListening(): void; /** * Apply settings * @param {ISettings} settings * @return {IExecutionResult} */ applySettings(settings: ISettings & ITraceableAction): Promise<IExecutionResult>; /** * send a command * @param {ICommand} command */ sendCommand(command: ICommand): Promise<IExecutionResult>; /** * Probe the latest status * @return {Promise<ISatusEvent>} */ probeStatus(): Promise<IStatusEvent>; /** * Probe the latest information * @return {Promise<IDataEvent>} */ probeCurrentData(): Promise<IDataEvent>; /** * Return meta data about emitter * @return {unknown} */ getMetaData(): unknown; /** * Clean up resources */ dispose(): void; }