@curium.rocks/udp-emitter
Version:
A IDataEmitter implementation that wraps UDP transports
73 lines (72 loc) • 2.11 kB
TypeScript
/// <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;
}