node-opcua-utils
Version:
pure nodejs OPCUA SDK - module utils
57 lines (55 loc) • 1.72 kB
TypeScript
/**
* @module node-opcua-utils
*/
import { EventEmitter } from "events";
type ArbitraryClockTick = number;
type DurationInMillisecond = number;
export interface IWatchdogData2 {
key: number;
subscriber: ISubscriber;
timeout: DurationInMillisecond;
lastSeen: ArbitraryClockTick;
visitCount: number;
}
export interface ISubscriber {
_watchDog?: WatchDog;
_watchDogData?: IWatchdogData2;
watchdogReset: () => void;
keepAlive?: () => void;
onClientSeen?: () => void;
}
export declare class WatchDog extends EventEmitter {
static lastSeenToDuration(lastSeen: number): number;
static emptyKeepAlive: () => void;
/**
* returns the number of subscribers using the WatchDog object.
*/
get subscriberCount(): number;
private readonly _watchdogDataMap;
private _counter;
private _currentTime;
private _timer;
private readonly _visitSubscriberB;
constructor();
/**
* add a subscriber to the WatchDog.
*
* add a subscriber to the WatchDog.
*
* This method modifies the subscriber be adding a
* new method to it called 'keepAlive'
* The subscriber must also provide a "watchdogReset". watchdogReset will be called
* if the subscriber failed to call keepAlive withing the timeout period.
* @param subscriber
* @param timeout
* @return the numerical key associated with this subscriber
*/
addSubscriber(subscriber: ISubscriber, timeout: number): number;
removeSubscriber(subscriber: ISubscriber): void;
shutdown(): void;
getCurrentSystemTick(): ArbitraryClockTick;
private _visit_subscriber;
private _start_timer;
private _stop_timer;
}
export {};