@openhps/sphero
Version:
Open Hybrid Positioning System - Sphero component
24 lines (23 loc) • 701 B
TypeScript
/// <reference types="node" />
export interface ICommandQueueItem<P> {
payload: P;
timeout?: NodeJS.Timer;
success: (payload: P) => any;
reject: (error: string) => any;
}
export interface IQueueListener<P> {
onExecute: (command: P) => Promise<any>;
match: (commandA: P, commandB: P) => boolean;
}
export declare class Queue<P> {
private waitingForResponseQueue;
private commandQueue;
private queueListener;
constructor(queueListener: IQueueListener<P>);
onCommandProcessed(payloadReceived: P): void;
queue(payload: P): Promise<P>;
private processCommand;
private removeFromWaiting;
private onCommandTimedout;
private handleQueueError;
}