rxpoweredup
Version:
A Typescript RxJS-based library for controlling LEGO Powered UP hubs & peripherals.
25 lines (24 loc) • 1.11 kB
TypeScript
import { Observable } from 'rxjs';
import type { GenericErrorInboundMessage, IDisposable, ILogger } from '../../../types';
import { IQueueTask } from './i-queue-task';
import { IChannel } from '../i-channel';
import { ITaskVisitor } from './i-task-visitor';
export declare class TaskQueue implements IDisposable {
private readonly channel;
private readonly messageSendTimeout;
private readonly maxMessageSendAttempts;
private readonly initialMessageSendRetryDelay;
private readonly logger;
private readonly genericErrorsStream;
private readonly taskVisitor;
private isDisposed;
private readonly queue;
constructor(channel: IChannel, messageSendTimeout: number, maxMessageSendAttempts: number, initialMessageSendRetryDelay: number, logger: ILogger, genericErrorsStream: Observable<GenericErrorInboundMessage>, taskVisitor: ITaskVisitor);
enqueueTask(task: IQueueTask<unknown>): void;
dispose(): void;
private executeTask;
private removeTaskFromQueue;
private createRetryConfig;
private logTimeoutError;
private logMaxRetriesReachedError;
}