import { SlicerFn, OpConfig } from '../interfaces'; import SlicerCore from './core/slicer-core'; /** * A varient of a "Slicer" for running a parallel stream of slicers. * @see SlicerCore */ export default abstract class ParallelSlicer extends SlicerCore { protected _slicers: SlicerObj[]; /** * Register the different Slicer instances * @see SlicerCore#initialize */ initialize(recoveryData: object[]): Promise; /** * Cleanup the slicers functions * @see SlicerCore#shutdown */ shutdown(): Promise; /** * Called by {@link ParallelSlicer#handle} for every count of `slicers` in the ExecutionConfig * @returns a function which will be called in parallel */ abstract newSlicer(): Promise; slicers(): number; handle(): Promise; readonly isFinished: boolean; private processSlicer; } interface SlicerObj { done: boolean; fn: SlicerFn; id: number; processing: boolean; order: number; } export {};