Commit | Line | Data |
---|---|---|
322c9192 | 1 | import Constants from '../utils/Constants'; |
c045d9a9 | 2 | import { WorkerData } from '../types/Worker'; |
7dde0b73 | 3 | |
fd1fdf1b | 4 | export default abstract class WorkerAbstract { |
322c9192 JB |
5 | protected readonly workerScript: string; |
6 | protected readonly workerStartDelay: number; | |
81797102 | 7 | protected readonly messageListener: (message: any) => void; |
418106c8 | 8 | public abstract size: number; |
6e0964c8 | 9 | public abstract maxElementsPerWorker: number | null; |
6af9012e | 10 | |
7dde0b73 | 11 | /** |
e71cccf3 | 12 | * `WorkerAbstract` constructor. |
7dde0b73 | 13 | * |
81797102 JB |
14 | * @param workerScript |
15 | * @param workerStartDelay | |
16 | * @param messageListenerCallback | |
7dde0b73 | 17 | */ |
81797102 JB |
18 | constructor(workerScript: string, workerStartDelay: number = Constants.WORKER_START_DELAY, |
19 | messageListenerCallback: (message: any) => void = () => { /* This is intentional */ }) { | |
ad2f27c3 | 20 | this.workerScript = workerScript; |
322c9192 | 21 | this.workerStartDelay = workerStartDelay; |
81797102 | 22 | this.messageListener = messageListenerCallback; |
7dde0b73 JB |
23 | } |
24 | ||
418106c8 | 25 | public abstract start(): Promise<void>; |
ded13d97 | 26 | public abstract stop(): Promise<void>; |
6013bc53 | 27 | public abstract addElement(elementData: WorkerData): Promise<void>; |
7dde0b73 | 28 | } |