data-channel-router
Version:
Data channel router
45 lines (44 loc) • 1.73 kB
TypeScript
import { ThreadManagerEvents } from "../enums/ThreadManagerEvents";
import { IThreadManagerOptions } from "../interfaces";
import { EventEmitter } from "../utils";
import { Thread } from "./Thread";
type Events = typeof ThreadManagerEvents.STARTED | typeof ThreadManagerEvents.COMPLITED | typeof ThreadManagerEvents.BUFFERING;
type OnStartedListener = (thread: Thread) => void;
type OnCompletedListener = (thread: Thread) => void;
type OnBufferingListener = (bufferSize: number) => void;
type Listeners = OnStartedListener | OnCompletedListener | OnBufferingListener;
/**
* Thread manager
* @link https://github.com/DjonnyX/data-channel-router/blob/main/library/src/components/ThreadManager.ts
* @author Evgenii Grebennikov
* @email djonnyx@gmail.com
*/
export declare class ThreadManager extends EventEmitter<Events, Listeners> {
private _threadQueue;
private _processingThreadQueue;
private _maxThreads;
get maxThreads(): number;
private _threadsInWork;
get threadsInWork(): number;
private _rejectedThreads;
get rejectedThreads(): number;
private _complitedThreads;
get complitedThreads(): number;
get finishedThreads(): number;
get buffering(): number;
private _paused;
private _onThreadStartedHandler;
private _onThreadRejectedHandler;
private _onThreadWaitForConnectionHandler;
private _onThreadComplitedHandler;
constructor(options?: IThreadManagerOptions);
add(thread: Thread): void;
run(): void;
play(): void;
pause(): void;
protected startNextThreadIfNeed(): boolean;
protected startThread(thread: Thread, started?: boolean): void;
protected removeThread(thread: Thread): void;
dispose(): void;
}
export {};