refactor: add helper to build content addressable key for id tags cache
authorJérôme Benoit <jerome.benoit@sap.com>
Sun, 26 Mar 2023 17:16:42 +0000 (19:16 +0200)
committerJérôme Benoit <jerome.benoit@sap.com>
Sun, 26 Mar 2023 17:16:42 +0000 (19:16 +0200)
indexes

Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/charging-station/IdTagsCache.ts

index 48ecb552a90b7c23f0f474952cdb33b87cd49dbb..f19f66f31948b270de58a115fee550a4a6fcbdcb 100644 (file)
@@ -58,7 +58,7 @@ export class IdTagsCache {
 
   private getRandomIdTag(hashId: string, file: string): string {
     const idTags = this.getIdTags(file);
-    const addressableKey = file + hashId;
+    const addressableKey = this.getIdTagsCacheAddressableKey(file, hashId);
     this.idTagsCachesAddressableIndexes.set(
       addressableKey,
       Math.floor(Utils.secureRandom() * idTags.length)
@@ -68,7 +68,7 @@ export class IdTagsCache {
 
   private getRoundRobinIdTag(hashId: string, file: string): string {
     const idTags = this.getIdTags(file);
-    const addressableKey = file + hashId;
+    const addressableKey = this.getIdTagsCacheAddressableKey(file, hashId);
     const idTagIndex = this.idTagsCachesAddressableIndexes.get(addressableKey) ?? 0;
     const idTag = idTags[idTagIndex];
     this.idTagsCachesAddressableIndexes.set(
@@ -82,7 +82,7 @@ export class IdTagsCache {
     const file = ChargingStationUtils.getIdTagsFile(chargingStation.stationInfo);
     const idTags = this.getIdTags(file);
     const hashId = chargingStation.stationInfo.hashId;
-    const addressableKey = file + hashId;
+    const addressableKey = this.getIdTagsCacheAddressableKey(file, hashId);
     this.idTagsCachesAddressableIndexes.set(
       addressableKey,
       (chargingStation.index - 1 + (connectorId - 1)) % idTags.length
@@ -144,6 +144,10 @@ export class IdTagsCache {
     }
   }
 
+  private getIdTagsCacheAddressableKey(prefix: string, uid: string): string {
+    return `${prefix}${uid}`;
+  }
+
   private getIdTagsFromFile(file: string): string[] {
     let idTags: string[] = [];
     if (file) {