Cleanup worker internal API
[e-mobility-charging-stations-simulator.git] / src / types / Worker.ts
index 6ec9e9997ca1a17f33daa435eb0b34e43fd8bb02..aca1922e02a1df88e098068f12f295ab9f16fe1e 100644 (file)
@@ -1,3 +1,5 @@
+import { JsonType } from './JsonType';
+import { PoolOptions } from 'poolifier';
 import { Worker } from 'worker_threads';
 
 export enum WorkerProcessType {
@@ -6,19 +8,30 @@ export enum WorkerProcessType {
   STATIC_POOL = 'staticPool'
 }
 
-export interface WorkerData { }
-
-export interface StationWorkerData extends WorkerData {
-  index: number;
-  templateFile: string;
+export interface WorkerOptions {
+  workerStartDelay?: number;
+  elementStartDelay?: number;
+  poolMaxSize?: number;
+  poolMinSize?: number;
+  elementsPerWorker?: number;
+  poolOptions?: PoolOptions<Worker>;
+  messageHandler?: (message: unknown) => void | Promise<void>;
 }
 
+export type WorkerData = JsonType;
+
 export interface WorkerSetElement {
-  worker: Worker,
-  numberOfWorkerElements: number
+  worker: Worker;
+  numberOfWorkerElements: number;
+}
+
+export interface WorkerMessage<T extends WorkerData> {
+  id: WorkerMessageEvents;
+  data: T;
 }
 
-export enum WorkerEvents {
+export enum WorkerMessageEvents {
   START_WORKER_ELEMENT = 'startWorkerElement',
+  STOP_WORKER_ELEMENT = 'stopWorkerElement'
 }