@itwin/core-backend 5.1.0-dev.42 → 5.1.0-dev.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
+ import { IModelJsNative } from "@bentley/imodeljs-native";
1
2
  import { Id64String } from "@itwin/core-bentley";
2
3
  import { ElementLoadOptions, ElementLoadProps, ElementProps } from "@itwin/core-common";
3
4
  export interface CachedElement {
@@ -25,4 +26,26 @@ export declare class ElementLRUCache {
25
26
  set(el: CachedElement): this;
26
27
  get [Symbol.toStringTag](): string;
27
28
  }
29
+ /**
30
+ * A LRU cache for entities. Cache contains the ElementProps and the load options used to load it.
31
+ * Cache can be searched by id, code or federationGuid.
32
+ */
33
+ export declare class InstanceKeyLRUCache {
34
+ readonly capacity: number;
35
+ static readonly DEFAULT_CAPACITY = 2000;
36
+ private _argsToResultCache;
37
+ private _resultToArgsCache;
38
+ constructor(capacity?: number);
39
+ set(key: IModelJsNative.ResolveInstanceKeyArgs, result: IModelJsNative.ResolveInstanceKeyResult): this;
40
+ get(key: IModelJsNative.ResolveInstanceKeyArgs): IModelJsNative.ResolveInstanceKeyResult | undefined;
41
+ deleteById(id: string): boolean;
42
+ delete(key: IModelJsNative.ResolveInstanceKeyArgs): boolean;
43
+ private deleteCachedArgs;
44
+ private static makeCachedArgs;
45
+ private static combineCachedArgs;
46
+ private static makeCodeKey;
47
+ clear(): void;
48
+ get size(): number;
49
+ get [Symbol.toStringTag](): string;
50
+ }
28
51
  //# sourceMappingURL=ElementLRUCache.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElementLRUCache.d.ts","sourceRoot":"","sources":["../../../src/internal/ElementLRUCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAa,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGnG,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,eAAe;aA6BS,QAAQ;IA5B3C,gBAAuB,gBAAgB,QAAQ;IAC/C,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,sBAAsB,CAAiC;IAE/D,OAAO,CAAC,MAAM,CAAC,WAAW;IAO1B,OAAO,CAAC,WAAW;gBAgBgB,QAAQ,SAAmC;IACvE,KAAK,IAAI,IAAI;IAKpB,IAAW,IAAI,IAAI,MAAM,CAExB;IACM,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAM1C,MAAM,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO;IAYtC,GAAG,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,GAAG,SAAS;IAoBrD,GAAG,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IA6BnC,IAAW,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAExC;CACF"}
1
+ {"version":3,"file":"ElementLRUCache.d.ts","sourceRoot":"","sources":["../../../src/internal/ElementLRUCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAQ,UAAU,EAAc,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAa,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGnG,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,kBAAkB,CAAA;IAC/B,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,eAAe;aA6BS,QAAQ;IA5B3C,gBAAuB,gBAAgB,QAAQ;IAC/C,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,YAAY,CAAqC;IACzD,OAAO,CAAC,sBAAsB,CAAiC;IAE/D,OAAO,CAAC,MAAM,CAAC,WAAW;IAO1B,OAAO,CAAC,WAAW;gBAgBgB,QAAQ,SAAmC;IACvE,KAAK,IAAI,IAAI;IAKpB,IAAW,IAAI,IAAI,MAAM,CAExB;IACM,eAAe,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IAM1C,MAAM,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO;IAYtC,GAAG,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,GAAG,SAAS;IAoBrD,GAAG,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IA6BnC,IAAW,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAExC;CACF;AAwED;;;GAGG;AACH,qBAAa,mBAAmB;aAKK,QAAQ;IAJ3C,gBAAuB,gBAAgB,QAAQ;IAC/C,OAAO,CAAC,kBAAkB,CAA8B;IACxD,OAAO,CAAC,kBAAkB,CAAqC;gBAE5B,QAAQ,SAAmC;IAEvE,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,sBAAsB,EAAE,MAAM,EAAE,cAAc,CAAC,wBAAwB,GAAG,IAAI;IAsBtG,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,sBAAsB,GAAG,cAAc,CAAC,wBAAwB,GAAG,SAAS;IAapG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAS/B,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,sBAAsB,GAAG,OAAO;IAIlE,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAUhC,OAAO,CAAC,MAAM,CAAC,WAAW;IAOnB,KAAK,IAAI,IAAI;IAIpB,IAAW,IAAI,IAAI,MAAM,CAExB;IACD,IAAW,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAExC;CACF"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ElementLRUCache = void 0;
3
+ exports.InstanceKeyLRUCache = exports.ElementLRUCache = void 0;
4
+ const core_bentley_1 = require("@itwin/core-bentley");
4
5
  /**
5
6
  * A LRU cache for entities. Cache contains the ElementProps and the load options used to load it.
6
7
  * Cache can be searched by id, code or federationGuid.
@@ -33,7 +34,7 @@ class ElementLRUCache {
33
34
  return this._elementCache.get(id);
34
35
  }
35
36
  else {
36
- throw new Error("No key provided");
37
+ core_bentley_1.ITwinError.throwError({ message: "No key provided", iTwinErrorId: { scope: "imodel-cache", key: "invalid-arguments" } });
37
38
  }
38
39
  return undefined;
39
40
  }
@@ -87,7 +88,7 @@ class ElementLRUCache {
87
88
  }
88
89
  set(el) {
89
90
  if (!el.elProps.id)
90
- throw new Error("Element must have an id");
91
+ core_bentley_1.ITwinError.throwError({ message: "Element must have an id", iTwinErrorId: { scope: "imodel-cache", key: "invalid-arguments" } });
91
92
  // do not cache this element as geom need to be rerender into geom props if any part changes
92
93
  // TODO: find a way to handle caching geometry
93
94
  if (el.loadOptions.wantGeometry) {
@@ -117,4 +118,167 @@ class ElementLRUCache {
117
118
  }
118
119
  exports.ElementLRUCache = ElementLRUCache;
119
120
  ;
121
+ /**
122
+ * A map to store instance keys based on different optional arguments like id, code, or federationGuid.
123
+ * This allows the cache to be searched by any combination of arguments.
124
+ */
125
+ class ArgumentsToResultMap {
126
+ _idToResult = new Map();
127
+ _codeToResult = new Map();
128
+ _federationGuidToResult = new Map();
129
+ constructor() { }
130
+ set(args, result) {
131
+ if (!args.id && !args.code && !args.federationGuid)
132
+ core_bentley_1.ITwinError.throwError({ message: "At least one id, code, or federationGuid must be provided", iTwinErrorId: { scope: "imodel-cache", key: "invalid-arguments" } });
133
+ if (args.id)
134
+ this._idToResult.set(args.id, result);
135
+ else
136
+ this._idToResult.set(result.id, result);
137
+ if (args.code)
138
+ this._codeToResult.set(args.code, result);
139
+ if (args.federationGuid)
140
+ this._federationGuidToResult.set(args.federationGuid, result);
141
+ }
142
+ get(args) {
143
+ if (!args.id && !args.code && !args.federationGuid)
144
+ core_bentley_1.ITwinError.throwError({ message: "At least one id, code, or federationGuid must be provided", iTwinErrorId: { scope: "imodel-cache", key: "invalid-arguments" } });
145
+ if (args.id)
146
+ return this._idToResult.get(args.id);
147
+ else if (args.code)
148
+ return this._codeToResult.get(args.code);
149
+ else if (args.federationGuid)
150
+ return this._federationGuidToResult.get(args.federationGuid);
151
+ return undefined;
152
+ }
153
+ delete(args) {
154
+ if (!args.id && !args.code && !args.federationGuid)
155
+ core_bentley_1.ITwinError.throwError({ message: "At least one id, code, or federationGuid must be provided", iTwinErrorId: { scope: "imodel-cache", key: "invalid-arguments" } });
156
+ let deleted = false;
157
+ if (args.id)
158
+ deleted = this._idToResult.delete(args.id) ? true : deleted;
159
+ if (args.code)
160
+ deleted = this._codeToResult.delete(args.code) ? true : deleted;
161
+ if (args.federationGuid)
162
+ deleted = this._federationGuidToResult.delete(args.federationGuid) ? true : deleted;
163
+ return deleted;
164
+ }
165
+ clear() {
166
+ this._idToResult.clear();
167
+ this._codeToResult.clear();
168
+ this._federationGuidToResult.clear();
169
+ }
170
+ get size() {
171
+ return this._idToResult.size; // Id to key will always be stored even if code or federationGuid are not provided.
172
+ }
173
+ get [Symbol.toStringTag]() {
174
+ return `idCacheSize=${this._idToResult.size}, codeCacheSize=${this._codeToResult.size}, federationGuidCacheSize=${this._federationGuidToResult.size}`;
175
+ }
176
+ }
177
+ /**
178
+ * A LRU cache for entities. Cache contains the ElementProps and the load options used to load it.
179
+ * Cache can be searched by id, code or federationGuid.
180
+ */
181
+ class InstanceKeyLRUCache {
182
+ capacity;
183
+ static DEFAULT_CAPACITY = 2000;
184
+ _argsToResultCache = new ArgumentsToResultMap();
185
+ _resultToArgsCache = new Map();
186
+ constructor(capacity = ElementLRUCache.DEFAULT_CAPACITY) {
187
+ this.capacity = capacity;
188
+ }
189
+ set(key, result) {
190
+ const cacheArgs = InstanceKeyLRUCache.makeCachedArgs(key);
191
+ cacheArgs.id = cacheArgs.id ? cacheArgs.id : result.id;
192
+ const existingArgs = this._resultToArgsCache.get(result.id);
193
+ if (existingArgs) {
194
+ // Combine existing args with new args for more complete key
195
+ this._argsToResultCache.delete(existingArgs);
196
+ const combinedArgs = InstanceKeyLRUCache.combineCachedArgs(existingArgs, cacheArgs);
197
+ this._argsToResultCache.set(combinedArgs, result);
198
+ this._resultToArgsCache.set(result.id, combinedArgs);
199
+ }
200
+ else {
201
+ this._argsToResultCache.set(cacheArgs, result);
202
+ this._resultToArgsCache.set(result.id, cacheArgs);
203
+ }
204
+ if (this._resultToArgsCache.size > this.capacity) {
205
+ const oldestKey = this._resultToArgsCache.keys().next().value;
206
+ const oldestArgs = this._resultToArgsCache.get(oldestKey);
207
+ this.deleteCachedArgs({ id: oldestArgs?.id, code: oldestArgs?.code, federationGuid: oldestArgs?.federationGuid });
208
+ }
209
+ return this;
210
+ }
211
+ get(key) {
212
+ const args = InstanceKeyLRUCache.makeCachedArgs(key);
213
+ const cachedResult = this._argsToResultCache.get(args);
214
+ if (cachedResult) {
215
+ // Pop the cached result to the end of the cache to mark it as recently used
216
+ const cachedArgs = this._resultToArgsCache.get(cachedResult.id);
217
+ if (cachedArgs) {
218
+ this._resultToArgsCache.delete(cachedResult.id);
219
+ this._resultToArgsCache.set(cachedResult.id, cachedArgs);
220
+ }
221
+ }
222
+ return cachedResult;
223
+ }
224
+ deleteById(id) {
225
+ if (!core_bentley_1.Id64.isValidId64(id))
226
+ core_bentley_1.ITwinError.throwError({ message: "Invalid id provided", iTwinErrorId: { scope: "imodel-cache", key: "invalid-arguments" } });
227
+ const cacheArgs = {
228
+ id: core_bentley_1.Id64.fromString(id),
229
+ };
230
+ return this.deleteCachedArgs(cacheArgs);
231
+ }
232
+ delete(key) {
233
+ const cacheArgs = InstanceKeyLRUCache.makeCachedArgs(key);
234
+ return this.deleteCachedArgs(cacheArgs);
235
+ }
236
+ deleteCachedArgs(key) {
237
+ const result = this._argsToResultCache.get(key);
238
+ if (result) {
239
+ const argsToDelete = this._resultToArgsCache.get(result.id);
240
+ this._argsToResultCache.delete({ id: argsToDelete?.id, code: argsToDelete?.code, federationGuid: argsToDelete?.federationGuid });
241
+ this._resultToArgsCache.delete(result.id);
242
+ return true;
243
+ }
244
+ return false;
245
+ }
246
+ static makeCachedArgs(args) {
247
+ if (!args.partialKey && !args.code && !args.federationGuid)
248
+ core_bentley_1.ITwinError.throwError({ message: "ResolveInstanceKeyArgs must have a partialKey, code, or federationGuid", iTwinErrorId: { scope: "imodel-cache", key: "invalid-arguments" } });
249
+ return {
250
+ id: args.partialKey?.id,
251
+ code: args.code ? InstanceKeyLRUCache.makeCodeKey(args.code) : undefined,
252
+ federationGuid: args.federationGuid,
253
+ };
254
+ }
255
+ static combineCachedArgs(originalArgs, newArgs) {
256
+ if (!originalArgs.id && !originalArgs.code && !originalArgs.federationGuid && !newArgs.id && !newArgs.code && !newArgs.federationGuid)
257
+ core_bentley_1.ITwinError.throwError({ message: "ResolveInstanceKeyArgs must have a partialKey, code, or federationGuid", iTwinErrorId: { scope: "imodel-cache", key: "invalid-arguments" } });
258
+ return {
259
+ id: newArgs.id ? newArgs.id : originalArgs.id,
260
+ code: newArgs.code ? newArgs.code : originalArgs.code,
261
+ federationGuid: newArgs.federationGuid ? newArgs.federationGuid : originalArgs.federationGuid,
262
+ };
263
+ }
264
+ static makeCodeKey(code) {
265
+ const keys = [code.scope, code.spec];
266
+ if (code.value !== undefined) {
267
+ keys.push(code.value);
268
+ }
269
+ return JSON.stringify(keys);
270
+ }
271
+ clear() {
272
+ this._argsToResultCache.clear();
273
+ this._resultToArgsCache.clear();
274
+ }
275
+ get size() {
276
+ return this._resultToArgsCache.size;
277
+ }
278
+ get [Symbol.toStringTag]() {
279
+ return `InstanceKeyCache(size=${this.size}, capacity=${this.capacity})`;
280
+ }
281
+ }
282
+ exports.InstanceKeyLRUCache = InstanceKeyLRUCache;
283
+ ;
120
284
  //# sourceMappingURL=ElementLRUCache.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElementLRUCache.js","sourceRoot":"","sources":["../../../src/internal/ElementLRUCache.ts"],"names":[],"mappings":"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","sourcesContent":["import { Id64String } from \"@itwin/core-bentley\";\r\nimport { CodeProps, ElementLoadOptions, ElementLoadProps, ElementProps } from \"@itwin/core-common\";\r\n\r\n/* @internal */\r\nexport interface CachedElement {\r\n loadOptions: ElementLoadOptions\r\n elProps: ElementProps;\r\n}\r\n\r\n/**\r\n * A LRU cache for entities. Cache contains the ElementProps and the load options used to load it.\r\n * Cache can be searched by id, code or federationGuid.\r\n */\r\nexport class ElementLRUCache {\r\n public static readonly DEFAULT_CAPACITY = 2000;\r\n private _elementCache = new Map<Id64String, CachedElement>();\r\n private _cacheByCode = new Map<Id64String, Id64String>();\r\n private _cacheByFederationGuid = new Map<string, Id64String>();\r\n\r\n private static makeCodeKey(code: CodeProps): string {\r\n const keys = [code.scope, code.spec];\r\n if (code.value !== undefined) {\r\n keys.push(code.value);\r\n }\r\n return JSON.stringify(keys);\r\n }\r\n private findElement(key: ElementLoadProps): CachedElement | undefined {\r\n if (key.id) {\r\n return this._elementCache.get(key.id);\r\n } else if (key.federationGuid) {\r\n const id = this._cacheByFederationGuid.get(key.federationGuid);\r\n if (id)\r\n return this._elementCache.get(id);\r\n } else if (key.code) {\r\n const id = this._cacheByCode.get(ElementLRUCache.makeCodeKey(key.code));\r\n if (id)\r\n return this._elementCache.get(id);\r\n } else {\r\n throw new Error(\"No key provided\");\r\n }\r\n return undefined;\r\n }\r\n public constructor(public readonly capacity = ElementLRUCache.DEFAULT_CAPACITY) { }\r\n public clear(): void {\r\n this._elementCache.clear();\r\n this._cacheByCode.clear();\r\n this._cacheByFederationGuid.clear();\r\n }\r\n public get size(): number {\r\n return this._elementCache.size;\r\n }\r\n public deleteWithModel(modelId: Id64String): void {\r\n this._elementCache.forEach((cachedVal, elementId) => {\r\n if (cachedVal.elProps.model === modelId)\r\n this.delete({ id: elementId });\r\n });\r\n }\r\n public delete(key: ElementLoadProps): boolean {\r\n const cachedElement = this.findElement(key);\r\n if (cachedElement) {\r\n if (cachedElement.elProps.id)\r\n this._elementCache.delete(cachedElement.elProps.id);\r\n this._cacheByCode.delete(ElementLRUCache.makeCodeKey(cachedElement.elProps.code));\r\n if (cachedElement.elProps.federationGuid)\r\n this._cacheByFederationGuid.delete(cachedElement.elProps.federationGuid);\r\n return true;\r\n }\r\n return false;\r\n }\r\n public get(key: ElementLoadProps): CachedElement | undefined {\r\n const cachedElement = this.findElement(key);\r\n if (cachedElement) {\r\n if (cachedElement.elProps.id) {\r\n this._elementCache.delete(cachedElement.elProps.id);\r\n this._elementCache.set(cachedElement.elProps.id, cachedElement);\r\n }\r\n }\r\n\r\n if (cachedElement) {\r\n if (key.displayStyle !== cachedElement.loadOptions.displayStyle ||\r\n key.onlyBaseProperties !== cachedElement.loadOptions.onlyBaseProperties ||\r\n key.renderTimeline !== cachedElement.loadOptions.renderTimeline ||\r\n key.wantBRepData !== cachedElement.loadOptions.wantBRepData ||\r\n key.wantGeometry !== cachedElement.loadOptions.wantGeometry) {\r\n return undefined\r\n }\r\n }\r\n return cachedElement;\r\n }\r\n public set(el: CachedElement): this {\r\n if (!el.elProps.id)\r\n throw new Error(\"Element must have an id\");\r\n\r\n // do not cache this element as geom need to be rerender into geom props if any part changes\r\n // TODO: find a way to handle caching geometry\r\n if (el.loadOptions.wantGeometry) {\r\n return this;\r\n }\r\n\r\n if (this._elementCache.has(el.elProps.id)) {\r\n this._elementCache.delete(el.elProps.id);\r\n this._elementCache.set(el.elProps.id, el);\r\n } else {\r\n this._elementCache.set(el.elProps.id, el);\r\n }\r\n\r\n if (el.elProps.federationGuid) {\r\n this._cacheByFederationGuid.set(el.elProps.federationGuid, el.elProps.id);\r\n }\r\n\r\n this._cacheByCode.set(ElementLRUCache.makeCodeKey(el.elProps.code), el.elProps.id);\r\n if (this._elementCache.size > this.capacity) {\r\n const oldestKey = this._elementCache.keys().next().value as Id64String;\r\n const oldestElement = this._elementCache.get(oldestKey);\r\n this.delete({ id: oldestKey, federationGuid: oldestElement?.elProps.federationGuid, code: oldestElement?.elProps.code });\r\n }\r\n return this;\r\n }\r\n public get [Symbol.toStringTag](): string {\r\n return `EntityCache(this.size=${this.size}, capacity=${this.capacity})`;\r\n }\r\n};\r\n"]}
1
+ {"version":3,"file":"ElementLRUCache.js","sourceRoot":"","sources":["../../../src/internal/ElementLRUCache.ts"],"names":[],"mappings":"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","sourcesContent":["import { IModelJsNative } from \"@bentley/imodeljs-native\";\r\nimport { Id64, Id64String, ITwinError } from \"@itwin/core-bentley\";\r\nimport { CodeProps, ElementLoadOptions, ElementLoadProps, ElementProps } from \"@itwin/core-common\";\r\n\r\n/* @internal */\r\nexport interface CachedElement {\r\n loadOptions: ElementLoadOptions\r\n elProps: ElementProps;\r\n}\r\n\r\n/**\r\n * A LRU cache for entities. Cache contains the ElementProps and the load options used to load it.\r\n * Cache can be searched by id, code or federationGuid.\r\n */\r\nexport class ElementLRUCache {\r\n public static readonly DEFAULT_CAPACITY = 2000;\r\n private _elementCache = new Map<Id64String, CachedElement>();\r\n private _cacheByCode = new Map<Id64String, Id64String>();\r\n private _cacheByFederationGuid = new Map<string, Id64String>();\r\n\r\n private static makeCodeKey(code: CodeProps): string {\r\n const keys = [code.scope, code.spec];\r\n if (code.value !== undefined) {\r\n keys.push(code.value);\r\n }\r\n return JSON.stringify(keys);\r\n }\r\n private findElement(key: ElementLoadProps): CachedElement | undefined {\r\n if (key.id) {\r\n return this._elementCache.get(key.id);\r\n } else if (key.federationGuid) {\r\n const id = this._cacheByFederationGuid.get(key.federationGuid);\r\n if (id)\r\n return this._elementCache.get(id);\r\n } else if (key.code) {\r\n const id = this._cacheByCode.get(ElementLRUCache.makeCodeKey(key.code));\r\n if (id)\r\n return this._elementCache.get(id);\r\n } else {\r\n ITwinError.throwError<ITwinError>({ message: \"No key provided\", iTwinErrorId: { scope: \"imodel-cache\", key: \"invalid-arguments\" } });\r\n }\r\n return undefined;\r\n }\r\n public constructor(public readonly capacity = ElementLRUCache.DEFAULT_CAPACITY) { }\r\n public clear(): void {\r\n this._elementCache.clear();\r\n this._cacheByCode.clear();\r\n this._cacheByFederationGuid.clear();\r\n }\r\n public get size(): number {\r\n return this._elementCache.size;\r\n }\r\n public deleteWithModel(modelId: Id64String): void {\r\n this._elementCache.forEach((cachedVal, elementId) => {\r\n if (cachedVal.elProps.model === modelId)\r\n this.delete({ id: elementId });\r\n });\r\n }\r\n public delete(key: ElementLoadProps): boolean {\r\n const cachedElement = this.findElement(key);\r\n if (cachedElement) {\r\n if (cachedElement.elProps.id)\r\n this._elementCache.delete(cachedElement.elProps.id);\r\n this._cacheByCode.delete(ElementLRUCache.makeCodeKey(cachedElement.elProps.code));\r\n if (cachedElement.elProps.federationGuid)\r\n this._cacheByFederationGuid.delete(cachedElement.elProps.federationGuid);\r\n return true;\r\n }\r\n return false;\r\n }\r\n public get(key: ElementLoadProps): CachedElement | undefined {\r\n const cachedElement = this.findElement(key);\r\n if (cachedElement) {\r\n if (cachedElement.elProps.id) {\r\n this._elementCache.delete(cachedElement.elProps.id);\r\n this._elementCache.set(cachedElement.elProps.id, cachedElement);\r\n }\r\n }\r\n\r\n if (cachedElement) {\r\n if (key.displayStyle !== cachedElement.loadOptions.displayStyle ||\r\n key.onlyBaseProperties !== cachedElement.loadOptions.onlyBaseProperties ||\r\n key.renderTimeline !== cachedElement.loadOptions.renderTimeline ||\r\n key.wantBRepData !== cachedElement.loadOptions.wantBRepData ||\r\n key.wantGeometry !== cachedElement.loadOptions.wantGeometry) {\r\n return undefined\r\n }\r\n }\r\n return cachedElement;\r\n }\r\n public set(el: CachedElement): this {\r\n if (!el.elProps.id)\r\n ITwinError.throwError<ITwinError>({ message: \"Element must have an id\", iTwinErrorId: { scope: \"imodel-cache\", key: \"invalid-arguments\" } });\r\n\r\n // do not cache this element as geom need to be rerender into geom props if any part changes\r\n // TODO: find a way to handle caching geometry\r\n if (el.loadOptions.wantGeometry) {\r\n return this;\r\n }\r\n\r\n if (this._elementCache.has(el.elProps.id)) {\r\n this._elementCache.delete(el.elProps.id);\r\n this._elementCache.set(el.elProps.id, el);\r\n } else {\r\n this._elementCache.set(el.elProps.id, el);\r\n }\r\n\r\n if (el.elProps.federationGuid) {\r\n this._cacheByFederationGuid.set(el.elProps.federationGuid, el.elProps.id);\r\n }\r\n\r\n this._cacheByCode.set(ElementLRUCache.makeCodeKey(el.elProps.code), el.elProps.id);\r\n if (this._elementCache.size > this.capacity) {\r\n const oldestKey = this._elementCache.keys().next().value as Id64String;\r\n const oldestElement = this._elementCache.get(oldestKey);\r\n this.delete({ id: oldestKey, federationGuid: oldestElement?.elProps.federationGuid, code: oldestElement?.elProps.code });\r\n }\r\n return this;\r\n }\r\n public get [Symbol.toStringTag](): string {\r\n return `EntityCache(this.size=${this.size}, capacity=${this.capacity})`;\r\n }\r\n};\r\n\r\n/* @internal */\r\ninterface CachedArgs {\r\n id?: Id64String;\r\n code?: string;\r\n federationGuid?: Id64String;\r\n}\r\n\r\n/**\r\n * A map to store instance keys based on different optional arguments like id, code, or federationGuid.\r\n * This allows the cache to be searched by any combination of arguments.\r\n */\r\nclass ArgumentsToResultMap {\r\n private _idToResult = new Map<Id64String, IModelJsNative.ResolveInstanceKeyResult>();\r\n private _codeToResult = new Map<string, IModelJsNative.ResolveInstanceKeyResult>();\r\n private _federationGuidToResult = new Map<Id64String, IModelJsNative.ResolveInstanceKeyResult>();\r\n\r\n public constructor() { }\r\n\r\n public set(args: CachedArgs, result: IModelJsNative.ResolveInstanceKeyResult): void {\r\n if (!args.id && !args.code && !args.federationGuid)\r\n ITwinError.throwError<ITwinError>({ message: \"At least one id, code, or federationGuid must be provided\", iTwinErrorId: { scope: \"imodel-cache\", key: \"invalid-arguments\" } });\r\n\r\n if (args.id)\r\n this._idToResult.set(args.id, result);\r\n else\r\n this._idToResult.set(result.id, result);\r\n\r\n if (args.code)\r\n this._codeToResult.set(args.code, result);\r\n if (args.federationGuid)\r\n this._federationGuidToResult.set(args.federationGuid, result);\r\n }\r\n public get(args: CachedArgs): IModelJsNative.ResolveInstanceKeyResult | undefined {\r\n if (!args.id && !args.code && !args.federationGuid)\r\n ITwinError.throwError<ITwinError>({ message: \"At least one id, code, or federationGuid must be provided\", iTwinErrorId: { scope: \"imodel-cache\", key: \"invalid-arguments\" } });\r\n\r\n if (args.id)\r\n return this._idToResult.get(args.id);\r\n else if (args.code)\r\n return this._codeToResult.get(args.code);\r\n else if (args.federationGuid)\r\n return this._federationGuidToResult.get(args.federationGuid);\r\n return undefined;\r\n }\r\n public delete(args: CachedArgs): boolean {\r\n if (!args.id && !args.code && !args.federationGuid)\r\n ITwinError.throwError<ITwinError>({ message: \"At least one id, code, or federationGuid must be provided\", iTwinErrorId: { scope: \"imodel-cache\", key: \"invalid-arguments\" } });\r\n\r\n let deleted = false;\r\n if (args.id)\r\n deleted = this._idToResult.delete(args.id) ? true : deleted;\r\n if (args.code)\r\n deleted = this._codeToResult.delete(args.code) ? true : deleted;\r\n if (args.federationGuid)\r\n deleted = this._federationGuidToResult.delete(args.federationGuid) ? true : deleted;\r\n return deleted;\r\n }\r\n public clear(): void {\r\n this._idToResult.clear();\r\n this._codeToResult.clear();\r\n this._federationGuidToResult.clear();\r\n }\r\n public get size(): number {\r\n return this._idToResult.size; // Id to key will always be stored even if code or federationGuid are not provided.\r\n }\r\n public get [Symbol.toStringTag](): string {\r\n return `idCacheSize=${this._idToResult.size}, codeCacheSize=${this._codeToResult.size}, federationGuidCacheSize=${this._federationGuidToResult.size}`;\r\n }\r\n}\r\n\r\n/**\r\n * A LRU cache for entities. Cache contains the ElementProps and the load options used to load it.\r\n * Cache can be searched by id, code or federationGuid.\r\n */\r\nexport class InstanceKeyLRUCache {\r\n public static readonly DEFAULT_CAPACITY = 2000;\r\n private _argsToResultCache = new ArgumentsToResultMap();\r\n private _resultToArgsCache = new Map<Id64String, CachedArgs>();\r\n\r\n public constructor(public readonly capacity = ElementLRUCache.DEFAULT_CAPACITY) { }\r\n\r\n public set(key: IModelJsNative.ResolveInstanceKeyArgs, result: IModelJsNative.ResolveInstanceKeyResult): this {\r\n const cacheArgs: CachedArgs = InstanceKeyLRUCache.makeCachedArgs(key);\r\n cacheArgs.id = cacheArgs.id ? cacheArgs.id : result.id;\r\n const existingArgs = this._resultToArgsCache.get(result.id);\r\n if (existingArgs) {\r\n // Combine existing args with new args for more complete key\r\n this._argsToResultCache.delete(existingArgs);\r\n const combinedArgs: CachedArgs = InstanceKeyLRUCache.combineCachedArgs(existingArgs, cacheArgs);\r\n this._argsToResultCache.set(combinedArgs, result);\r\n this._resultToArgsCache.set(result.id, combinedArgs);\r\n } else {\r\n this._argsToResultCache.set(cacheArgs, result);\r\n this._resultToArgsCache.set(result.id, cacheArgs);\r\n }\r\n\r\n if (this._resultToArgsCache.size > this.capacity) {\r\n const oldestKey = this._resultToArgsCache.keys().next().value as Id64String;\r\n const oldestArgs = this._resultToArgsCache.get(oldestKey);\r\n this.deleteCachedArgs({id: oldestArgs?.id,code: oldestArgs?.code, federationGuid: oldestArgs?.federationGuid});\r\n }\r\n return this;\r\n }\r\n public get(key: IModelJsNative.ResolveInstanceKeyArgs): IModelJsNative.ResolveInstanceKeyResult | undefined {\r\n const args = InstanceKeyLRUCache.makeCachedArgs(key);\r\n const cachedResult = this._argsToResultCache.get(args);\r\n if (cachedResult) {\r\n // Pop the cached result to the end of the cache to mark it as recently used\r\n const cachedArgs = this._resultToArgsCache.get(cachedResult.id);\r\n if (cachedArgs) {\r\n this._resultToArgsCache.delete(cachedResult.id);\r\n this._resultToArgsCache.set(cachedResult.id, cachedArgs);\r\n }\r\n }\r\n return cachedResult;\r\n }\r\n public deleteById(id: string): boolean {\r\n if (!Id64.isValidId64(id))\r\n ITwinError.throwError<ITwinError>({ message: \"Invalid id provided\", iTwinErrorId: { scope: \"imodel-cache\", key: \"invalid-arguments\" } });\r\n\r\n const cacheArgs = {\r\n id: Id64.fromString(id),\r\n }\r\n return this.deleteCachedArgs(cacheArgs);\r\n }\r\n public delete(key: IModelJsNative.ResolveInstanceKeyArgs): boolean {\r\n const cacheArgs = InstanceKeyLRUCache.makeCachedArgs(key);\r\n return this.deleteCachedArgs(cacheArgs);\r\n }\r\n private deleteCachedArgs(key: CachedArgs): boolean {\r\n const result = this._argsToResultCache.get(key);\r\n if (result) {\r\n const argsToDelete = this._resultToArgsCache.get(result.id);\r\n this._argsToResultCache.delete({id: argsToDelete?.id, code: argsToDelete?.code, federationGuid: argsToDelete?.federationGuid});\r\n this._resultToArgsCache.delete(result.id);\r\n return true;\r\n }\r\n return false;\r\n }\r\n private static makeCachedArgs(args: IModelJsNative.ResolveInstanceKeyArgs): CachedArgs {\r\n if (!args.partialKey && !args.code && !args.federationGuid)\r\n ITwinError.throwError<ITwinError>({ message: \"ResolveInstanceKeyArgs must have a partialKey, code, or federationGuid\", iTwinErrorId: { scope: \"imodel-cache\", key: \"invalid-arguments\" } });\r\n\r\n return {\r\n id: args.partialKey?.id,\r\n code: args.code ? InstanceKeyLRUCache.makeCodeKey(args.code) : undefined,\r\n federationGuid: args.federationGuid,\r\n };\r\n }\r\n private static combineCachedArgs(originalArgs: CachedArgs, newArgs: CachedArgs): CachedArgs {\r\n if (!originalArgs.id && !originalArgs.code && !originalArgs.federationGuid && !newArgs.id && !newArgs.code && !newArgs.federationGuid)\r\n ITwinError.throwError<ITwinError>({ message: \"ResolveInstanceKeyArgs must have a partialKey, code, or federationGuid\", iTwinErrorId: { scope: \"imodel-cache\", key: \"invalid-arguments\" } });\r\n\r\n return {\r\n id: newArgs.id ? newArgs.id : originalArgs.id,\r\n code: newArgs.code ? newArgs.code : originalArgs.code,\r\n federationGuid: newArgs.federationGuid ? newArgs.federationGuid : originalArgs.federationGuid,\r\n };\r\n }\r\n private static makeCodeKey(code: CodeProps): string {\r\n const keys = [code.scope, code.spec];\r\n if (code.value !== undefined) {\r\n keys.push(code.value);\r\n }\r\n return JSON.stringify(keys);\r\n }\r\n public clear(): void {\r\n this._argsToResultCache.clear();\r\n this._resultToArgsCache.clear();\r\n }\r\n public get size(): number {\r\n return this._resultToArgsCache.size;\r\n }\r\n public get [Symbol.toStringTag](): string {\r\n return `InstanceKeyCache(size=${this.size}, capacity=${this.capacity})`;\r\n }\r\n};"]}
@@ -17,4 +17,5 @@ export declare const _setHubAccess: unique symbol;
17
17
  export declare const _getHubAccess: unique symbol;
18
18
  export declare const _mockCheckpoint: unique symbol;
19
19
  export declare const _cache: unique symbol;
20
+ export declare const _instanceKeyCache: unique symbol;
20
21
  //# sourceMappingURL=Symbols.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Symbols.d.ts","sourceRoot":"","sources":["../../../src/internal/Symbols.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,eAAO,MAAM,yBAAyB,eAAmG,CAAC;AAM1I,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,kBAAkB,eAAuC,CAAC;AACvE,eAAO,MAAM,UAAU,eAA+B,CAAC;AACvD,eAAO,MAAM,QAAQ,eAA6B,CAAC;AACnD,eAAO,MAAM,IAAI,eAAyB,CAAC;AAC3C,gBAAgB;AAChB,eAAO,MAAM,SAAS,eAA8B,CAAC;AACrD,eAAO,MAAM,gBAAgB,eAAqC,CAAC;AACnE,eAAO,MAAM,cAAc,eAAmC,CAAC;AAC/D,gBAAgB;AAChB,eAAO,MAAM,UAAU,eAA+B,CAAC;AACvD,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,eAAe,eAAoC,CAAC;AACjE,eAAO,MAAM,MAAM,eAA2B,CAAC"}
1
+ {"version":3,"file":"Symbols.d.ts","sourceRoot":"","sources":["../../../src/internal/Symbols.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,eAAO,MAAM,yBAAyB,eAAmG,CAAC;AAM1I,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,kBAAkB,eAAuC,CAAC;AACvE,eAAO,MAAM,UAAU,eAA+B,CAAC;AACvD,eAAO,MAAM,QAAQ,eAA6B,CAAC;AACnD,eAAO,MAAM,IAAI,eAAyB,CAAC;AAC3C,gBAAgB;AAChB,eAAO,MAAM,SAAS,eAA8B,CAAC;AACrD,eAAO,MAAM,gBAAgB,eAAqC,CAAC;AACnE,eAAO,MAAM,cAAc,eAAmC,CAAC;AAC/D,gBAAgB;AAChB,eAAO,MAAM,UAAU,eAA+B,CAAC;AACvD,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,eAAe,eAAoC,CAAC;AACjE,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,iBAAiB,eAAsC,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * @module Workspace
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports._cache = exports._mockCheckpoint = exports._getHubAccess = exports._setHubAccess = exports._hubAccess = exports._verifyChannel = exports._releaseAllLocks = exports._nativeDb = exports._key = exports._getData = exports._faceProps = exports._elementWasCreated = exports._close = exports._implementationProhibited = void 0;
10
+ exports._instanceKeyCache = exports._cache = exports._mockCheckpoint = exports._getHubAccess = exports._setHubAccess = exports._hubAccess = exports._verifyChannel = exports._releaseAllLocks = exports._nativeDb = exports._key = exports._getData = exports._faceProps = exports._elementWasCreated = exports._close = exports._implementationProhibited = void 0;
11
11
  exports._implementationProhibited = Symbol.for("Implementations of this interface can only be obtained from the containing package");
12
12
  function sym(name) {
13
13
  return `${name}_core-backend_INTERNAL_ONLY_DO_NOT_USE`;
@@ -27,4 +27,5 @@ exports._setHubAccess = Symbol.for(sym("setHubAccess"));
27
27
  exports._getHubAccess = Symbol.for(sym("getHubAccess"));
28
28
  exports._mockCheckpoint = Symbol.for(sym("mockCheckpoint"));
29
29
  exports._cache = Symbol.for(sym("cache"));
30
+ exports._instanceKeyCache = Symbol.for(sym("instanceKeyCache"));
30
31
  //# sourceMappingURL=Symbols.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Symbols.js","sourceRoot":"","sources":["../../../src/internal/Symbols.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEU,QAAA,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;AAE1I,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,GAAG,IAAI,wCAAwC,CAAC;AACzD,CAAC;AAEY,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAA,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC1D,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,QAAA,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACtC,QAAA,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,gBAAgB;AACH,QAAA,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACxC,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACtD,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/D,gBAAgB;AACH,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAChD,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAChD,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpD,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Workspace\r\n */\r\n\r\nexport const _implementationProhibited = Symbol.for(\"Implementations of this interface can only be obtained from the containing package\");\r\n\r\nfunction sym(name: string): string {\r\n return `${name}_core-backend_INTERNAL_ONLY_DO_NOT_USE`;\r\n}\r\n\r\nexport const _close = Symbol.for(sym(\"close\"));\r\nexport const _elementWasCreated = Symbol.for(sym(\"elementWasCreated\"));\r\nexport const _faceProps = Symbol.for(sym(\"faceProps\"));\r\nexport const _getData = Symbol.for(sym(\"getData\"));\r\nexport const _key = Symbol.for(sym(\"key\"));\r\n/** @internal */\r\nexport const _nativeDb = Symbol.for(sym(\"nativeDb\"));\r\nexport const _releaseAllLocks = Symbol.for(sym(\"releaseAllLocks\"));\r\nexport const _verifyChannel = Symbol.for(sym(\"verifyChannel\"));\r\n/** @internal */\r\nexport const _hubAccess = Symbol.for(sym(\"hubAccess\"));\r\nexport const _setHubAccess = Symbol.for(sym(\"setHubAccess\"));\r\nexport const _getHubAccess = Symbol.for(sym(\"getHubAccess\"));\r\nexport const _mockCheckpoint = Symbol.for(sym(\"mockCheckpoint\"));\r\nexport const _cache = Symbol.for(sym(\"cache\"));\r\n"]}
1
+ {"version":3,"file":"Symbols.js","sourceRoot":"","sources":["../../../src/internal/Symbols.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEU,QAAA,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;AAE1I,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,GAAG,IAAI,wCAAwC,CAAC;AACzD,CAAC;AAEY,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAA,kBAAkB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAC1D,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,QAAA,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AACtC,QAAA,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,gBAAgB;AACH,QAAA,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACxC,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACtD,QAAA,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;AAC/D,gBAAgB;AACH,QAAA,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;AAC1C,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAChD,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAChD,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpD,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAA,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Workspace\r\n */\r\n\r\nexport const _implementationProhibited = Symbol.for(\"Implementations of this interface can only be obtained from the containing package\");\r\n\r\nfunction sym(name: string): string {\r\n return `${name}_core-backend_INTERNAL_ONLY_DO_NOT_USE`;\r\n}\r\n\r\nexport const _close = Symbol.for(sym(\"close\"));\r\nexport const _elementWasCreated = Symbol.for(sym(\"elementWasCreated\"));\r\nexport const _faceProps = Symbol.for(sym(\"faceProps\"));\r\nexport const _getData = Symbol.for(sym(\"getData\"));\r\nexport const _key = Symbol.for(sym(\"key\"));\r\n/** @internal */\r\nexport const _nativeDb = Symbol.for(sym(\"nativeDb\"));\r\nexport const _releaseAllLocks = Symbol.for(sym(\"releaseAllLocks\"));\r\nexport const _verifyChannel = Symbol.for(sym(\"verifyChannel\"));\r\n/** @internal */\r\nexport const _hubAccess = Symbol.for(sym(\"hubAccess\"));\r\nexport const _setHubAccess = Symbol.for(sym(\"setHubAccess\"));\r\nexport const _getHubAccess = Symbol.for(sym(\"getHubAccess\"));\r\nexport const _mockCheckpoint = Symbol.for(sym(\"mockCheckpoint\"));\r\nexport const _cache = Symbol.for(sym(\"cache\"));\r\nexport const _instanceKeyCache = Symbol.for(sym(\"instanceKeyCache\"));\r\n"]}
@@ -30,10 +30,10 @@ import { Workspace } from "./workspace/Workspace";
30
30
  import { LockControl } from "./LockControl";
31
31
  import type { BlobContainer } from "./BlobContainerService";
32
32
  import { IModelDbFonts } from "./IModelDbFonts";
33
- import { _cache, _nativeDb } from "./internal/Symbols";
33
+ import { _cache, _instanceKeyCache, _nativeDb } from "./internal/Symbols";
34
34
  import { SchemaContext } from "@itwin/ecschema-metadata";
35
35
  import { SchemaMap } from "./Schema";
36
- import { ElementLRUCache } from "./internal/ElementLRUCache";
36
+ import { ElementLRUCache, InstanceKeyLRUCache } from "./internal/ElementLRUCache";
37
37
  /** Options for [[IModelDb.Models.updateModel]]
38
38
  * @note To mark *only* the geometry as changed, use [[IModelDb.Models.updateGeometryGuid]] instead.
39
39
  * @public
@@ -810,6 +810,8 @@ export declare namespace IModelDb {
810
810
  /** @internal */
811
811
  readonly [_cache]: LRUMap<string, ModelProps>;
812
812
  /** @internal */
813
+ readonly [_instanceKeyCache]: InstanceKeyLRUCache;
814
+ /** @internal */
813
815
  constructor(_iModel: IModelDb);
814
816
  /** Get the ModelProps with the specified identifier.
815
817
  * @param modelId The Model identifier.
@@ -921,6 +923,8 @@ export declare namespace IModelDb {
921
923
  /** @internal */
922
924
  readonly [_cache]: ElementLRUCache;
923
925
  /** @internal */
926
+ readonly [_instanceKeyCache]: InstanceKeyLRUCache;
927
+ /** @internal */
924
928
  constructor(_iModel: IModelDb);
925
929
  getFederationGuidFromId(id: Id64String): GuidString | undefined;
926
930
  getIdFromFederationGuid(guid?: GuidString): Id64String | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"IModelDb.d.ts","sourceRoot":"","sources":["../../src/IModelDb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IModelDb.d.ts","sourceRoot":"","sources":["../../src/IModelDb.ts"],"names":[],"mappings":"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"}
@@ -44,10 +44,10 @@ import { SettingsImpl } from "./internal/workspace/SettingsImpl";
44
44
  import { IModelNative } from "./internal/NativePlatform";
45
45
  import { createNoOpLockControl } from "./internal/NoLocks";
46
46
  import { createIModelDbFonts } from "./internal/IModelDbFontsImpl";
47
- import { _cache, _close, _hubAccess, _nativeDb, _releaseAllLocks } from "./internal/Symbols";
47
+ import { _cache, _close, _hubAccess, _instanceKeyCache, _nativeDb, _releaseAllLocks } from "./internal/Symbols";
48
48
  import { SchemaContext, SchemaJsonLocater } from "@itwin/ecschema-metadata";
49
49
  import { SchemaMap } from "./Schema";
50
- import { ElementLRUCache } from "./internal/ElementLRUCache";
50
+ import { ElementLRUCache, InstanceKeyLRUCache } from "./internal/ElementLRUCache";
51
51
  // spell:ignore fontid fontmap
52
52
  const loggerCategory = BackendLoggerCategory.IModelDb;
53
53
  /** @internal */
@@ -579,6 +579,8 @@ export class IModelDb extends IModel {
579
579
  this._schemaContext = undefined;
580
580
  this.elements[_cache].clear();
581
581
  this.models[_cache].clear();
582
+ this.elements[_instanceKeyCache].clear();
583
+ this.models[_instanceKeyCache].clear();
582
584
  }
583
585
  /** Update the project extents for this iModel.
584
586
  * <p><em>Example:</em>
@@ -1486,6 +1488,8 @@ function processSchemaWriteStatus(status) {
1486
1488
  /** @internal */
1487
1489
  [_cache] = new LRUMap(this._modelCacheSize);
1488
1490
  /** @internal */
1491
+ [_instanceKeyCache] = new InstanceKeyLRUCache(this._modelCacheSize);
1492
+ /** @internal */
1489
1493
  constructor(_iModel) {
1490
1494
  this._iModel = _iModel;
1491
1495
  }
@@ -1588,7 +1592,16 @@ function processSchemaWriteStatus(status) {
1588
1592
  else {
1589
1593
  throw new IModelError(IModelStatus.InvalidId, `Invalid model identifier: ${JSON.stringify(modelIdArg)}`);
1590
1594
  }
1591
- return this._iModel[_nativeDb].resolveInstanceKey(args);
1595
+ // Check the cache to avoid unnecessary native calls
1596
+ const cachedResult = this[_instanceKeyCache].get(args);
1597
+ if (cachedResult) {
1598
+ return cachedResult;
1599
+ }
1600
+ else {
1601
+ const instanceKey = this._iModel[_nativeDb].resolveInstanceKey(args);
1602
+ this[_instanceKeyCache].set(args, instanceKey);
1603
+ return instanceKey;
1604
+ }
1592
1605
  }
1593
1606
  /** Get the sub-model of the specified Element.
1594
1607
  * See [[IModelDb.Elements.queryElementIdByCode]] for more on how to find an element by Code.
@@ -1676,6 +1689,7 @@ function processSchemaWriteStatus(status) {
1676
1689
  Id64.toIdSet(ids).forEach((id) => {
1677
1690
  try {
1678
1691
  this[_cache].delete(id);
1692
+ this[_instanceKeyCache].deleteById(id);
1679
1693
  this._iModel[_nativeDb].deleteModel(id);
1680
1694
  }
1681
1695
  catch (err) {
@@ -1719,6 +1733,8 @@ function processSchemaWriteStatus(status) {
1719
1733
  /** @internal */
1720
1734
  [_cache] = new ElementLRUCache(this._elementCacheSize);
1721
1735
  /** @internal */
1736
+ [_instanceKeyCache] = new InstanceKeyLRUCache(this._elementCacheSize);
1737
+ /** @internal */
1722
1738
  constructor(_iModel) {
1723
1739
  this._iModel = _iModel;
1724
1740
  }
@@ -1767,7 +1783,16 @@ function processSchemaWriteStatus(status) {
1767
1783
  throw new IModelError(IModelStatus.InvalidId, "Element Id or FederationGuid or Code is required");
1768
1784
  }
1769
1785
  }
1770
- return this._iModel[_nativeDb].resolveInstanceKey(args);
1786
+ // Check the cache to avoid unnecessary native calls
1787
+ const cachedResult = this[_instanceKeyCache].get(args);
1788
+ if (cachedResult) {
1789
+ return cachedResult;
1790
+ }
1791
+ else {
1792
+ const instanceKey = this._iModel[_nativeDb].resolveInstanceKey(args);
1793
+ this[_instanceKeyCache].set(args, instanceKey);
1794
+ return instanceKey;
1795
+ }
1771
1796
  }
1772
1797
  /** Get properties of an Element by Id, FederationGuid, or Code
1773
1798
  * @returns The properties of the element or `undefined` if the element is not found.
@@ -1857,15 +1882,16 @@ function processSchemaWriteStatus(status) {
1857
1882
  throw new IModelError(IModelStatus.InvalidCodeSpec, "Invalid CodeSpec");
1858
1883
  if (code.value === undefined)
1859
1884
  throw new IModelError(IModelStatus.InvalidCode, "Invalid Code");
1860
- // eslint-disable-next-line @typescript-eslint/no-deprecated
1861
- return this._iModel.withPreparedStatement("SELECT ECInstanceId FROM BisCore:Element WHERE CodeSpec.Id=? AND CodeScope.Id=? AND CodeValue=?", (stmt) => {
1862
- stmt.bindId(1, code.spec);
1863
- stmt.bindId(2, Id64.fromString(code.scope));
1864
- stmt.bindString(3, code.value);
1865
- if (DbResult.BE_SQLITE_ROW !== stmt.step())
1885
+ const codeToQuery = new Code(code);
1886
+ try {
1887
+ const elementKey = this.resolveElementKey(codeToQuery);
1888
+ return Id64.fromString(elementKey.id);
1889
+ }
1890
+ catch (err) {
1891
+ if (err.errorNumber === IModelStatus.NotFound)
1866
1892
  return undefined;
1867
- return stmt.getValue(0).getId();
1868
- });
1893
+ throw err;
1894
+ }
1869
1895
  }
1870
1896
  /** Query for an [[Element]]'s last modified time.
1871
1897
  * @param elementId The Id of the element.
@@ -1946,6 +1972,7 @@ function processSchemaWriteStatus(status) {
1946
1972
  Id64.toIdSet(ids).forEach((id) => {
1947
1973
  try {
1948
1974
  this[_cache].delete({ id });
1975
+ this[_instanceKeyCache].deleteById(id);
1949
1976
  iModel[_nativeDb].deleteElement(id);
1950
1977
  }
1951
1978
  catch (err) {