npaw-plugin-nwf
Version:
NPAW's Plugin
57 lines (56 loc) • 1.42 kB
TypeScript
import SessionsRequest from '../SessionsRequest';
/**
* Manages the request queue with backpressure
*/
export default class RequestQueue {
private requests;
private maxSize;
constructor(maxSize?: number);
/**
* Enqueue a request
* @param request - Request to enqueue
* @returns true if enqueued, false if dropped due to backpressure
*/
enqueue(request: SessionsRequest): boolean;
/**
* Dequeue and return the first request
* @returns The first request or undefined if queue is empty
*/
dequeue(): SessionsRequest | undefined;
/**
* Peek at the first request without removing it
* @returns The first request or undefined if queue is empty
*/
peek(): SessionsRequest | undefined;
/**
* Add a request to the beginning of the queue
* @param request - Request to add
*/
unshift(request: SessionsRequest): void;
/**
* Check if queue is empty
*/
isEmpty(): boolean;
/**
* Get current queue size
*/
size(): number;
/**
* Clear all requests
*/
clear(): void;
/**
* Update max size
* @param maxSize - New maximum size
*/
setMaxSize(maxSize: number): void;
/**
* Get max size
*/
getMaxSize(): number;
/**
* Get all requests (for internal/legacy use)
* @internal
*/
getRequests(): SessionsRequest[];
}