X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FSharedLRUCache.ts;h=6b6df2049117f96a6c3df3881a73a1f4c5ae28fa;hb=07c52a72c0b8ab72dc37241892e02b229e70c0f6;hp=a40de80293ad9090904be33cd5213e349bfe06fe;hpb=1ca780f9d385bcf96a016ab5ba57ca0f19c94b74;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/SharedLRUCache.ts b/src/charging-station/SharedLRUCache.ts index a40de802..6b6df204 100644 --- a/src/charging-station/SharedLRUCache.ts +++ b/src/charging-station/SharedLRUCache.ts @@ -1,7 +1,8 @@ import LRUCache from 'mnemonist/lru-map-with-delete'; -import ChargingStationConfiguration from '../types/ChargingStationConfiguration'; -import ChargingStationTemplate from '../types/ChargingStationTemplate'; +import { Bootstrap } from '../internal'; +import type { ChargingStationConfiguration } from '../types/ChargingStationConfiguration'; +import type { ChargingStationTemplate } from '../types/ChargingStationTemplate'; import Utils from '../utils/Utils'; enum CacheType { @@ -16,7 +17,10 @@ export default class SharedLRUCache { private readonly lruCache: LRUCache; private constructor() { - this.lruCache = new LRUCache(1000); + this.lruCache = new LRUCache( + Bootstrap.getInstance().numberOfChargingStationTemplates + + Bootstrap.getInstance().numberOfChargingStations + ); } public static getInstance(): SharedLRUCache { @@ -79,18 +83,18 @@ export default class SharedLRUCache { } private getChargingStationConfigurationKey(hash: string): string { - return CacheType.CHARGING_STATION_CONFIGURATION + hash; + return `${CacheType.CHARGING_STATION_CONFIGURATION}${hash}`; } private getChargingStationTemplateKey(hash: string): string { - return CacheType.CHARGING_STATION_TEMPLATE + hash; + return `${CacheType.CHARGING_STATION_TEMPLATE}${hash}`; } private has(key: string): boolean { return this.lruCache.has(key); } - private get(key: string): CacheableType { + private get(key: string): CacheableType | undefined { return this.lruCache.get(key); } @@ -106,12 +110,12 @@ export default class SharedLRUCache { chargingStationConfiguration: ChargingStationConfiguration ): boolean { return ( - !Utils.isNullOrUndefined(chargingStationConfiguration?.configurationKey) && - !Utils.isNullOrUndefined(chargingStationConfiguration?.stationInfo) && - !Utils.isNullOrUndefined(chargingStationConfiguration?.configurationHash) && - !Utils.isEmptyArray(chargingStationConfiguration?.configurationKey) && - !Utils.isEmptyObject(chargingStationConfiguration?.stationInfo) && - !Utils.isEmptyString(chargingStationConfiguration?.configurationHash) + Utils.isNullOrUndefined(chargingStationConfiguration?.configurationKey) === false && + Utils.isNullOrUndefined(chargingStationConfiguration?.stationInfo) === false && + Utils.isNullOrUndefined(chargingStationConfiguration?.configurationHash) === false && + Utils.isEmptyArray(chargingStationConfiguration?.configurationKey) === false && + Utils.isEmptyObject(chargingStationConfiguration?.stationInfo) === false && + Utils.isEmptyString(chargingStationConfiguration?.configurationHash) === false ); } }