-// Copyright Jerome Benoit. 2021-2023. All Rights Reserved.
+// Copyright Jerome Benoit. 2021-2024. All Rights Reserved.
import { URL } from 'node:url'
protected readonly storageUri: URL
protected readonly logPrefix: string
protected dbName!: string
+ private static readonly performanceStatistics = new Map<string, Statistics>()
constructor (storageUri: string, logPrefix: string) {
this.storageUri = new URL(storageUri)
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<Statistics> {
+ 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<void>
public abstract close (): void | Promise<void>
public abstract storePerformanceStatistics (