X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fperformance%2Fstorage%2FStorage.ts;h=aee3ae9efbb5ca86b17a8a7ddf3fcd01b7b80684;hb=fcda9151b9eb6d13f06f7a5db45c89a77bda9eb8;hp=4724681558894674f6bb1d3decd2ea5953c276a3;hpb=5199f9fdf202eb534948f165a0994e1993675aa8;p=e-mobility-charging-stations-simulator.git diff --git a/src/performance/storage/Storage.ts b/src/performance/storage/Storage.ts index 47246815..aee3ae9e 100644 --- a/src/performance/storage/Storage.ts +++ b/src/performance/storage/Storage.ts @@ -1,4 +1,4 @@ -// Copyright Jerome Benoit. 2021-2023. All Rights Reserved. +// Copyright Jerome Benoit. 2021-2024. All Rights Reserved. import { URL } from 'node:url' @@ -15,6 +15,7 @@ export abstract class Storage { protected readonly storageUri: URL protected readonly logPrefix: string protected dbName!: string + private static readonly performanceStatistics = new Map() constructor (storageUri: string, logPrefix: string) { this.storageUri = new URL(storageUri) @@ -42,17 +43,29 @@ export abstract class Storage { protected getDBNameFromStorageType (type: StorageType): DBName | undefined { switch (type) { + case StorageType.SQLITE: + return DBName.SQLITE case StorageType.MARIA_DB: return DBName.MARIA_DB - case StorageType.MONGO_DB: - return DBName.MONGO_DB case StorageType.MYSQL: return DBName.MYSQL - case StorageType.SQLITE: - return DBName.SQLITE + case StorageType.MONGO_DB: + return DBName.MONGO_DB } } + public getPerformanceStatistics (): IterableIterator { + return Storage.performanceStatistics.values() + } + + protected setPerformanceStatistics (performanceStatistics: Statistics): void { + Storage.performanceStatistics.set(performanceStatistics.id, performanceStatistics) + } + + protected clearPerformanceStatistics (): void { + Storage.performanceStatistics.clear() + } + public abstract open (): void | Promise public abstract close (): void | Promise public abstract storePerformanceStatistics (