feat: add performance statistics to UI protocol
[e-mobility-charging-stations-simulator.git] / src / performance / storage / JsonFileStorage.ts
index 31d18537f783067bebd396d40cf19fad34d69b0f..a69edd69ace56acf62fbd3992cb401e901fc5c3b 100644 (file)
@@ -14,8 +14,6 @@ import {
 } from '../../utils/index.js'
 
 export class JsonFileStorage extends Storage {
-  private static performanceRecords: Map<string, Statistics>
-
   private fd?: number
 
   constructor (storageUri: string, logPrefix: string) {
@@ -24,13 +22,13 @@ export class JsonFileStorage extends Storage {
   }
 
   public storePerformanceStatistics (performanceStatistics: Statistics): void {
+    this.setPerformanceStatistics(performanceStatistics)
     this.checkPerformanceRecordsFile()
-    JsonFileStorage.performanceRecords.set(performanceStatistics.id, performanceStatistics)
     AsyncLock.runExclusive(AsyncLockType.performance, () => {
       writeSync(
         // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
         this.fd!,
-        JSONStringifyWithMapSupport([...JsonFileStorage.performanceRecords.values()], 2),
+        JSONStringifyWithMapSupport([...this.getPerformanceStatistics()], 2),
         0,
         'utf8'
       )
@@ -45,7 +43,6 @@ export class JsonFileStorage extends Storage {
   }
 
   public open (): void {
-    JsonFileStorage.performanceRecords = new Map<string, Statistics>()
     try {
       if (this.fd == null) {
         if (!existsSync(dirname(this.dbName))) {
@@ -64,7 +61,7 @@ export class JsonFileStorage extends Storage {
   }
 
   public close (): void {
-    JsonFileStorage.performanceRecords.clear()
+    this.clearPerformanceStatistics()
     try {
       if (this.fd != null) {
         closeSync(this.fd)