@cornerstonejs/core
Version:
Cornerstone3D Core
43 lines (42 loc) • 1.51 kB
TypeScript
import RequestType from '../enums/RequestType.js';
import type { IImage } from '../types/index.js';
interface AdditionalDetails {
imageId?: string;
volumeId?: string;
}
interface RequestDetailsInterface {
requestFn: () => Promise<IImage | void>;
type: RequestType;
additionalDetails: AdditionalDetails;
}
type RequestPool = {
[name in RequestType]: Record<number, RequestDetailsInterface[]>;
};
declare class RequestPoolManager {
private id;
private awake;
private requestPool;
private numRequests;
maxNumRequests: {
[RequestType.Interaction]: number;
[RequestType.Thumbnail]: number;
[RequestType.Prefetch]: number;
[RequestType.Compute]: number;
};
grabDelay: number;
private timeoutHandle;
constructor(id?: string);
setMaxSimultaneousRequests(type: RequestType, maxNumRequests: number): void;
getMaxSimultaneousRequests(type: RequestType): number;
destroy(): void;
addRequest(requestFn: () => Promise<IImage | void>, type: RequestType, additionalDetails: Record<string, unknown>, priority?: number): void;
filterRequests(filterFunction: (requestDetails: RequestDetailsInterface) => boolean): void;
clearRequestStack(type: string): void;
private sendRequests;
private getNextRequest;
protected startGrabbing(): void;
protected startAgain(): void;
protected getSortedPriorityGroups(type: string): number[];
getRequestPool(): RequestPool;
}
export { RequestPoolManager };