@itwin/core-backend 4.0.0-dev.6 → 4.0.0-dev.61
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.
- package/CHANGELOG.md +89 -67
- package/lib/cjs/BackendHubAccess.d.ts +224 -224
- package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
- package/lib/cjs/BackendHubAccess.js +41 -41
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.d.ts +90 -91
- package/lib/cjs/BackendLoggerCategory.d.ts.map +1 -1
- package/lib/cjs/BackendLoggerCategory.js +98 -99
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.d.ts +21 -21
- package/lib/cjs/BisCoreSchema.js +60 -60
- package/lib/cjs/BriefcaseManager.d.ts +170 -170
- package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
- package/lib/cjs/BriefcaseManager.js +408 -414
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/Category.d.ts +153 -153
- package/lib/cjs/Category.js +243 -243
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.d.ts +187 -187
- package/lib/cjs/ChangeSummaryManager.js +444 -445
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.d.ts +99 -99
- package/lib/cjs/ChangedElementsDb.js +165 -165
- package/lib/cjs/ChangedElementsManager.d.ts +39 -39
- package/lib/cjs/ChangedElementsManager.js +88 -88
- package/lib/cjs/ChannelControl.d.ts +70 -0
- package/lib/cjs/ChannelControl.d.ts.map +1 -0
- package/lib/cjs/ChannelControl.js +89 -0
- package/lib/cjs/ChannelControl.js.map +1 -0
- package/lib/cjs/CheckpointManager.d.ts +121 -121
- package/lib/cjs/CheckpointManager.d.ts.map +1 -1
- package/lib/cjs/CheckpointManager.js +351 -349
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.d.ts +79 -79
- package/lib/cjs/ClassRegistry.js +249 -245
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts +355 -350
- package/lib/cjs/CloudSqlite.d.ts.map +1 -1
- package/lib/cjs/CloudSqlite.js +154 -153
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CodeService.d.ts +396 -396
- package/lib/cjs/CodeService.d.ts.map +1 -1
- package/lib/cjs/CodeService.js +63 -63
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +55 -55
- package/lib/cjs/CodeSpecs.js +124 -124
- package/lib/cjs/ConcurrentQuery.d.ts +13 -13
- package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
- package/lib/cjs/ConcurrentQuery.js +36 -36
- package/lib/cjs/CustomViewState3dCreator.d.ts +21 -21
- package/lib/cjs/CustomViewState3dCreator.d.ts.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.js +82 -81
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.d.ts +74 -71
- package/lib/cjs/DevTools.d.ts.map +1 -1
- package/lib/cjs/DevTools.js +156 -154
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +106 -106
- package/lib/cjs/DisplayStyle.js +253 -256
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +194 -191
- package/lib/cjs/ECDb.d.ts.map +1 -1
- package/lib/cjs/ECDb.js +353 -350
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.d.ts +18 -18
- package/lib/cjs/ECSchemaXmlContext.d.ts.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.js +41 -41
- package/lib/cjs/ECSqlStatement.d.ts +473 -473
- package/lib/cjs/ECSqlStatement.js +791 -791
- package/lib/cjs/Element.d.ts +1113 -1109
- package/lib/cjs/Element.d.ts.map +1 -1
- package/lib/cjs/Element.js +1424 -1427
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +176 -179
- package/lib/cjs/ElementAspect.d.ts.map +1 -1
- package/lib/cjs/ElementAspect.js +203 -211
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.d.ts +9 -9
- package/lib/cjs/ElementGraphics.js +41 -41
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts +162 -162
- package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
- package/lib/cjs/ElementTreeWalker.js +409 -409
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.d.ts +106 -106
- package/lib/cjs/Entity.d.ts.map +1 -1
- package/lib/cjs/Entity.js +134 -134
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.d.ts +49 -49
- package/lib/cjs/EntityReferences.d.ts.map +1 -1
- package/lib/cjs/EntityReferences.js +95 -95
- package/lib/cjs/ExportGraphics.d.ts +317 -317
- package/lib/cjs/ExportGraphics.d.ts.map +1 -1
- package/lib/cjs/ExportGraphics.js +208 -208
- package/lib/cjs/ExternalSource.d.ts +96 -96
- package/lib/cjs/ExternalSource.js +131 -131
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.d.ts +19 -19
- package/lib/cjs/GeoCoordConfig.js +85 -85
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeometrySummary.d.ts +4 -4
- package/lib/cjs/GeometrySummary.js +333 -333
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/HubMock.d.ts +94 -94
- package/lib/cjs/HubMock.js +220 -222
- package/lib/cjs/HubMock.js.map +1 -1
- package/lib/cjs/IModelCloneContext.d.ts +8 -8
- package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
- package/lib/cjs/IModelCloneContext.js +15 -15
- package/lib/cjs/IModelDb.d.ts +1216 -1196
- package/lib/cjs/IModelDb.d.ts.map +1 -1
- package/lib/cjs/IModelDb.js +2387 -2392
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts +89 -89
- package/lib/cjs/IModelElementCloneContext.js +159 -159
- package/lib/cjs/IModelHost.d.ts +356 -369
- package/lib/cjs/IModelHost.d.ts.map +1 -1
- package/lib/cjs/IModelHost.js +472 -496
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelJsFs.d.ts +62 -62
- package/lib/cjs/IModelJsFs.js +139 -140
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/IpcHost.d.ts +104 -104
- package/lib/cjs/IpcHost.js +276 -278
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.d.ts +311 -311
- package/lib/cjs/LineStyle.js +295 -295
- package/lib/cjs/LocalHub.d.ts +162 -162
- package/lib/cjs/LocalHub.d.ts.map +1 -1
- package/lib/cjs/LocalHub.js +579 -584
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.d.ts +20 -20
- package/lib/cjs/LocalhostIpcHost.js +79 -81
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/Material.d.ts +131 -131
- package/lib/cjs/Material.js +180 -181
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +392 -392
- package/lib/cjs/Model.d.ts.map +1 -1
- package/lib/cjs/Model.js +489 -485
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.d.ts +51 -51
- package/lib/cjs/NativeAppStorage.js +202 -202
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.d.ts +52 -52
- package/lib/cjs/NativeHost.js +160 -163
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.d.ts +156 -156
- package/lib/cjs/NavigationRelationship.js +225 -225
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.d.ts +51 -51
- package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
- package/lib/cjs/PromiseMemoizer.js +101 -101
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.d.ts +132 -132
- package/lib/cjs/PropertyStore.js +11 -11
- package/lib/cjs/Relationship.d.ts +416 -416
- package/lib/cjs/Relationship.js +494 -494
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.d.ts +5 -5
- package/lib/cjs/RpcBackend.js +32 -32
- package/lib/cjs/SQLiteDb.d.ts +219 -219
- package/lib/cjs/SQLiteDb.js +212 -214
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.d.ts +55 -55
- package/lib/cjs/Schema.js +83 -83
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/ServerBasedLocks.d.ts +57 -57
- package/lib/cjs/ServerBasedLocks.js +168 -168
- package/lib/cjs/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/SqliteStatement.d.ts +360 -360
- package/lib/cjs/SqliteStatement.d.ts.map +1 -1
- package/lib/cjs/SqliteStatement.js +586 -586
- package/lib/cjs/Texture.d.ts +58 -58
- package/lib/cjs/Texture.js +82 -82
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.d.ts +18 -18
- package/lib/cjs/TileStorage.js +87 -90
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +202 -202
- package/lib/cjs/TxnManager.d.ts.map +1 -1
- package/lib/cjs/TxnManager.js +356 -356
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +435 -439
- package/lib/cjs/ViewDefinition.d.ts.map +1 -1
- package/lib/cjs/ViewDefinition.js +646 -646
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.d.ts +13 -13
- package/lib/cjs/ViewStateHydrator.js +103 -103
- package/lib/cjs/core-backend.d.ts +183 -184
- package/lib/cjs/core-backend.d.ts.map +1 -1
- package/lib/cjs/core-backend.js +207 -204
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.d.ts +101 -101
- package/lib/cjs/domains/FunctionalElements.js +145 -145
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.d.ts +13 -13
- package/lib/cjs/domains/FunctionalSchema.d.ts.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.js +39 -40
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.d.ts +177 -177
- package/lib/cjs/domains/GenericElements.js +263 -263
- package/lib/cjs/domains/GenericSchema.d.ts +10 -10
- package/lib/cjs/domains/GenericSchema.js +28 -28
- package/lib/cjs/rpc/multipart.d.ts +11 -11
- package/lib/cjs/rpc/multipart.js +71 -71
- package/lib/cjs/rpc/tracing.d.ts +28 -28
- package/lib/cjs/rpc/tracing.js +73 -74
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.d.ts +9 -9
- package/lib/cjs/rpc/web/logging.js +43 -43
- package/lib/cjs/rpc/web/request.d.ts +6 -6
- package/lib/cjs/rpc/web/request.js +73 -74
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.d.ts +6 -6
- package/lib/cjs/rpc/web/response.js +105 -106
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.d.ts +15 -15
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js +32 -32
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +47 -47
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +293 -294
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts +20 -22
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +187 -205
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +36 -36
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +166 -168
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +16 -16
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +42 -43
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/WipRpcImpl.d.ts +15 -15
- package/lib/cjs/rpc-impl/WipRpcImpl.js +37 -37
- package/lib/cjs/workspace/Settings.d.ts +186 -186
- package/lib/cjs/workspace/Settings.d.ts.map +1 -1
- package/lib/cjs/workspace/Settings.js +154 -155
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.d.ts +75 -75
- package/lib/cjs/workspace/SettingsSchemas.js +190 -191
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.d.ts +414 -414
- package/lib/cjs/workspace/Workspace.js +537 -543
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/package.json +19 -19
- package/lib/cjs/AliCloudStorageService.d.ts +0 -24
- package/lib/cjs/AliCloudStorageService.d.ts.map +0 -1
- package/lib/cjs/AliCloudStorageService.js +0 -72
- package/lib/cjs/AliCloudStorageService.js.map +0 -1
- package/lib/cjs/CloudStorageBackend.d.ts +0 -59
- package/lib/cjs/CloudStorageBackend.d.ts.map +0 -1
- package/lib/cjs/CloudStorageBackend.js +0 -174
- package/lib/cjs/CloudStorageBackend.js.map +0 -1
|
@@ -1,166 +1,166 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/*---------------------------------------------------------------------------------------------
|
|
3
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
-
*--------------------------------------------------------------------------------------------*/
|
|
6
|
-
/** @packageDocumentation
|
|
7
|
-
* @module ChangedElementsDb
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.ChangedElementsDb = void 0;
|
|
11
|
-
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
|
-
const core_common_1 = require("@itwin/core-common");
|
|
13
|
-
const BriefcaseManager_1 = require("./BriefcaseManager");
|
|
14
|
-
const ECDb_1 = require("./ECDb");
|
|
15
|
-
const IModelHost_1 = require("./IModelHost");
|
|
16
|
-
/** An ChangedElementsDb file
|
|
17
|
-
* @internal
|
|
18
|
-
*/
|
|
19
|
-
class ChangedElementsDb {
|
|
20
|
-
constructor() {
|
|
21
|
-
this._nativeDb = new IModelHost_1.IModelHost.platform.ChangedElementsECDb();
|
|
22
|
-
}
|
|
23
|
-
dispose() {
|
|
24
|
-
if (!this._nativeDb)
|
|
25
|
-
return;
|
|
26
|
-
this.closeDb();
|
|
27
|
-
this._nativeDb.dispose();
|
|
28
|
-
this._nativeDb = undefined;
|
|
29
|
-
}
|
|
30
|
-
/** Create a ChangedElementsDb
|
|
31
|
-
* @param pathName The path to the ECDb file to create.
|
|
32
|
-
* @throws [IModelError]($common) if the operation failed.
|
|
33
|
-
*/
|
|
34
|
-
_createDb(briefcase, pathName) {
|
|
35
|
-
const status = this.nativeDb.createDb(briefcase.nativeDb, pathName);
|
|
36
|
-
if (status !== core_bentley_1.DbResult.BE_SQLITE_OK)
|
|
37
|
-
throw new core_common_1.IModelError(status, "Failed to created ECDb");
|
|
38
|
-
}
|
|
39
|
-
/** Open the Changed Elements Db.
|
|
40
|
-
* @param pathName The path to the ECDb file to open
|
|
41
|
-
* @param openMode Open mode
|
|
42
|
-
* @throws [IModelError]($common) if the operation failed.
|
|
43
|
-
*/
|
|
44
|
-
_openDb(pathName, openMode = ECDb_1.ECDbOpenMode.Readonly) {
|
|
45
|
-
const nativeOpenMode = openMode === ECDb_1.ECDbOpenMode.Readonly ? core_bentley_1.OpenMode.Readonly : core_bentley_1.OpenMode.ReadWrite;
|
|
46
|
-
const tryUpgrade = openMode === ECDb_1.ECDbOpenMode.FileUpgrade;
|
|
47
|
-
const status = this.nativeDb.openDb(pathName, nativeOpenMode, tryUpgrade);
|
|
48
|
-
if (status !== core_bentley_1.DbResult.BE_SQLITE_OK)
|
|
49
|
-
throw new core_common_1.IModelError(status, "Failed to open ECDb");
|
|
50
|
-
}
|
|
51
|
-
/** Open the Changed Elements Db.
|
|
52
|
-
* @param pathName The path to the ECDb file to open
|
|
53
|
-
* @param openMode Open mode
|
|
54
|
-
* @returns ChangedElementsDb
|
|
55
|
-
*/
|
|
56
|
-
static openDb(pathName, openMode = ECDb_1.ECDbOpenMode.Readonly) {
|
|
57
|
-
const cacheDb = new ChangedElementsDb();
|
|
58
|
-
cacheDb._openDb(pathName, openMode);
|
|
59
|
-
return cacheDb;
|
|
60
|
-
}
|
|
61
|
-
/** Create the changed elements cache db
|
|
62
|
-
* @param briefcase IModelDb to use
|
|
63
|
-
* @param pathName The path to the ECDb file to create.
|
|
64
|
-
* @returns The new cache db
|
|
65
|
-
*/
|
|
66
|
-
static createDb(briefcase, pathName) {
|
|
67
|
-
const cacheDb = new ChangedElementsDb();
|
|
68
|
-
cacheDb._createDb(briefcase, pathName);
|
|
69
|
-
return cacheDb;
|
|
70
|
-
}
|
|
71
|
-
/** Processes a range of changesets and adds it to the changed elements cache
|
|
72
|
-
* @param briefcase iModel briefcase to use
|
|
73
|
-
* @param options Options for processing
|
|
74
|
-
*/
|
|
75
|
-
async processChangesets(accessToken, briefcase, options) {
|
|
76
|
-
const iModelId = briefcase.iModelId;
|
|
77
|
-
const first = (await IModelHost_1.IModelHost.hubAccess.queryChangeset({ iModelId, changeset: { id: options.startChangesetId }, accessToken })).index;
|
|
78
|
-
const end = (await IModelHost_1.IModelHost.hubAccess.queryChangeset({ iModelId, changeset: { id: options.endChangesetId }, accessToken })).index;
|
|
79
|
-
const changesets = await IModelHost_1.IModelHost.hubAccess.downloadChangesets({ accessToken, iModelId, range: { first, end }, targetDir: BriefcaseManager_1.BriefcaseManager.getChangeSetsPath(iModelId) });
|
|
80
|
-
// ChangeSets need to be processed from newest to oldest
|
|
81
|
-
changesets.reverse();
|
|
82
|
-
const status = this.nativeDb.processChangesets(briefcase.nativeDb, changesets, options.rulesetId, options.filterSpatial, options.wantParents, options.wantPropertyChecksums, options.rulesetDir, options.tempDir, options.wantChunkTraversal);
|
|
83
|
-
if (status !== core_bentley_1.DbResult.BE_SQLITE_OK)
|
|
84
|
-
throw new core_common_1.IModelError(status, "Failed to process changesets");
|
|
85
|
-
return status;
|
|
86
|
-
}
|
|
87
|
-
/** Processes a range of changesets and adds it to the changed elements cache
|
|
88
|
-
* This call will close the IModelDb object as it is required for processing and applying changesets
|
|
89
|
-
* @param briefcase iModel briefcase to use
|
|
90
|
-
* @param options options for processing
|
|
91
|
-
*/
|
|
92
|
-
async processChangesetsAndRoll(accessToken, briefcase, options) {
|
|
93
|
-
const iModelId = briefcase.iModelId;
|
|
94
|
-
const first = (await IModelHost_1.IModelHost.hubAccess.queryChangeset({ iModelId, changeset: { id: options.startChangesetId }, accessToken })).index;
|
|
95
|
-
const end = (await IModelHost_1.IModelHost.hubAccess.queryChangeset({ iModelId, changeset: { id: options.endChangesetId }, accessToken })).index;
|
|
96
|
-
const changesets = await IModelHost_1.IModelHost.hubAccess.downloadChangesets({ accessToken, iModelId, range: { first, end }, targetDir: BriefcaseManager_1.BriefcaseManager.getChangeSetsPath(iModelId) });
|
|
97
|
-
// ChangeSets need to be processed from newest to oldest
|
|
98
|
-
changesets.reverse();
|
|
99
|
-
// Close briefcase before doing processing and rolling briefcase
|
|
100
|
-
const dbFilename = briefcase.pathName;
|
|
101
|
-
const dbGuid = briefcase.iModelId;
|
|
102
|
-
briefcase.close();
|
|
103
|
-
// Process changesets
|
|
104
|
-
const status = this.nativeDb.processChangesetsAndRoll(dbFilename, dbGuid, changesets, options.rulesetId, options.filterSpatial, options.wantParents, options.wantPropertyChecksums, options.rulesetDir, options.tempDir, options.wantRelationshipCaching, options.relationshipCacheSize, options.wantChunkTraversal);
|
|
105
|
-
if (status !== core_bentley_1.DbResult.BE_SQLITE_OK)
|
|
106
|
-
throw new core_common_1.IModelError(status, "Failed to process changesets");
|
|
107
|
-
return status;
|
|
108
|
-
}
|
|
109
|
-
/** Get changed elements between two changesets
|
|
110
|
-
* @param startChangesetId Start Changeset Id
|
|
111
|
-
* @param endChangesetId End Changeset Id
|
|
112
|
-
* @returns Returns the changed elements between the changesets provided
|
|
113
|
-
* @throws [IModelError]($common) if the operation failed.
|
|
114
|
-
*/
|
|
115
|
-
getChangedElements(startChangesetId, endChangesetId) {
|
|
116
|
-
const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);
|
|
117
|
-
if (result.error || !result.result)
|
|
118
|
-
throw new core_common_1.IModelError(result.error ? result.error.status : -1, result.error ? result.error.message : "Problem getting changed elements");
|
|
119
|
-
return (result.result.changedElements);
|
|
120
|
-
}
|
|
121
|
-
/** Get changed models between two changesets
|
|
122
|
-
* @param startChangesetId Start Changeset Id
|
|
123
|
-
* @param endChangesetId End Changeset Id
|
|
124
|
-
* @returns Returns the changed models between the changesets provided
|
|
125
|
-
* @throws [IModelError]($common) if the operation failed.
|
|
126
|
-
*/
|
|
127
|
-
getChangedModels(startChangesetId, endChangesetId) {
|
|
128
|
-
const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);
|
|
129
|
-
if (result.error || !result.result)
|
|
130
|
-
throw new core_common_1.IModelError(result.error ? result.error.status : -1, result.error ? result.error.message : "Problem getting changed models");
|
|
131
|
-
return (result.result.changedModels);
|
|
132
|
-
}
|
|
133
|
-
/** Get changed models between two changesets
|
|
134
|
-
* @param startChangesetId Start Changeset Id
|
|
135
|
-
* @param endChangesetId End Changeset Id
|
|
136
|
-
* @returns Returns the changed models between the changesets provided
|
|
137
|
-
* @throws [IModelError]($common) if the operation failed.
|
|
138
|
-
*/
|
|
139
|
-
getChangeData(startChangesetId, endChangesetId) {
|
|
140
|
-
const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);
|
|
141
|
-
if (result.error)
|
|
142
|
-
throw new core_common_1.IModelError(result.error.status, result.error.message);
|
|
143
|
-
return result.result;
|
|
144
|
-
}
|
|
145
|
-
/** Returns true if the Changed Elements Db is open */
|
|
146
|
-
get isOpen() { return this.nativeDb.isOpen(); }
|
|
147
|
-
/** Returns true if the cache already contains this changeset Id */
|
|
148
|
-
isProcessed(changesetId) { return this.nativeDb.isProcessed(changesetId); }
|
|
149
|
-
/** Close the Db after saving any uncommitted changes.
|
|
150
|
-
* @throws [IModelError]($common) if the database is not open.
|
|
151
|
-
*/
|
|
152
|
-
closeDb() {
|
|
153
|
-
this.nativeDb.closeDb();
|
|
154
|
-
}
|
|
155
|
-
cleanCaches() {
|
|
156
|
-
this.nativeDb.cleanCaches();
|
|
157
|
-
}
|
|
158
|
-
/** @internal */
|
|
159
|
-
get nativeDb() {
|
|
160
|
-
if (!this._nativeDb)
|
|
161
|
-
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.BadRequest, "ChangedElementsDb object has already been disposed.");
|
|
162
|
-
return this._nativeDb;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
exports.ChangedElementsDb = ChangedElementsDb;
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module ChangedElementsDb
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ChangedElementsDb = void 0;
|
|
11
|
+
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
|
+
const core_common_1 = require("@itwin/core-common");
|
|
13
|
+
const BriefcaseManager_1 = require("./BriefcaseManager");
|
|
14
|
+
const ECDb_1 = require("./ECDb");
|
|
15
|
+
const IModelHost_1 = require("./IModelHost");
|
|
16
|
+
/** An ChangedElementsDb file
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
class ChangedElementsDb {
|
|
20
|
+
constructor() {
|
|
21
|
+
this._nativeDb = new IModelHost_1.IModelHost.platform.ChangedElementsECDb();
|
|
22
|
+
}
|
|
23
|
+
dispose() {
|
|
24
|
+
if (!this._nativeDb)
|
|
25
|
+
return;
|
|
26
|
+
this.closeDb();
|
|
27
|
+
this._nativeDb.dispose();
|
|
28
|
+
this._nativeDb = undefined;
|
|
29
|
+
}
|
|
30
|
+
/** Create a ChangedElementsDb
|
|
31
|
+
* @param pathName The path to the ECDb file to create.
|
|
32
|
+
* @throws [IModelError]($common) if the operation failed.
|
|
33
|
+
*/
|
|
34
|
+
_createDb(briefcase, pathName) {
|
|
35
|
+
const status = this.nativeDb.createDb(briefcase.nativeDb, pathName);
|
|
36
|
+
if (status !== core_bentley_1.DbResult.BE_SQLITE_OK)
|
|
37
|
+
throw new core_common_1.IModelError(status, "Failed to created ECDb");
|
|
38
|
+
}
|
|
39
|
+
/** Open the Changed Elements Db.
|
|
40
|
+
* @param pathName The path to the ECDb file to open
|
|
41
|
+
* @param openMode Open mode
|
|
42
|
+
* @throws [IModelError]($common) if the operation failed.
|
|
43
|
+
*/
|
|
44
|
+
_openDb(pathName, openMode = ECDb_1.ECDbOpenMode.Readonly) {
|
|
45
|
+
const nativeOpenMode = openMode === ECDb_1.ECDbOpenMode.Readonly ? core_bentley_1.OpenMode.Readonly : core_bentley_1.OpenMode.ReadWrite;
|
|
46
|
+
const tryUpgrade = openMode === ECDb_1.ECDbOpenMode.FileUpgrade;
|
|
47
|
+
const status = this.nativeDb.openDb(pathName, nativeOpenMode, tryUpgrade);
|
|
48
|
+
if (status !== core_bentley_1.DbResult.BE_SQLITE_OK)
|
|
49
|
+
throw new core_common_1.IModelError(status, "Failed to open ECDb");
|
|
50
|
+
}
|
|
51
|
+
/** Open the Changed Elements Db.
|
|
52
|
+
* @param pathName The path to the ECDb file to open
|
|
53
|
+
* @param openMode Open mode
|
|
54
|
+
* @returns ChangedElementsDb
|
|
55
|
+
*/
|
|
56
|
+
static openDb(pathName, openMode = ECDb_1.ECDbOpenMode.Readonly) {
|
|
57
|
+
const cacheDb = new ChangedElementsDb();
|
|
58
|
+
cacheDb._openDb(pathName, openMode);
|
|
59
|
+
return cacheDb;
|
|
60
|
+
}
|
|
61
|
+
/** Create the changed elements cache db
|
|
62
|
+
* @param briefcase IModelDb to use
|
|
63
|
+
* @param pathName The path to the ECDb file to create.
|
|
64
|
+
* @returns The new cache db
|
|
65
|
+
*/
|
|
66
|
+
static createDb(briefcase, pathName) {
|
|
67
|
+
const cacheDb = new ChangedElementsDb();
|
|
68
|
+
cacheDb._createDb(briefcase, pathName);
|
|
69
|
+
return cacheDb;
|
|
70
|
+
}
|
|
71
|
+
/** Processes a range of changesets and adds it to the changed elements cache
|
|
72
|
+
* @param briefcase iModel briefcase to use
|
|
73
|
+
* @param options Options for processing
|
|
74
|
+
*/
|
|
75
|
+
async processChangesets(accessToken, briefcase, options) {
|
|
76
|
+
const iModelId = briefcase.iModelId;
|
|
77
|
+
const first = (await IModelHost_1.IModelHost.hubAccess.queryChangeset({ iModelId, changeset: { id: options.startChangesetId }, accessToken })).index;
|
|
78
|
+
const end = (await IModelHost_1.IModelHost.hubAccess.queryChangeset({ iModelId, changeset: { id: options.endChangesetId }, accessToken })).index;
|
|
79
|
+
const changesets = await IModelHost_1.IModelHost.hubAccess.downloadChangesets({ accessToken, iModelId, range: { first, end }, targetDir: BriefcaseManager_1.BriefcaseManager.getChangeSetsPath(iModelId) });
|
|
80
|
+
// ChangeSets need to be processed from newest to oldest
|
|
81
|
+
changesets.reverse();
|
|
82
|
+
const status = this.nativeDb.processChangesets(briefcase.nativeDb, changesets, options.rulesetId, options.filterSpatial, options.wantParents, options.wantPropertyChecksums, options.rulesetDir, options.tempDir, options.wantChunkTraversal);
|
|
83
|
+
if (status !== core_bentley_1.DbResult.BE_SQLITE_OK)
|
|
84
|
+
throw new core_common_1.IModelError(status, "Failed to process changesets");
|
|
85
|
+
return status;
|
|
86
|
+
}
|
|
87
|
+
/** Processes a range of changesets and adds it to the changed elements cache
|
|
88
|
+
* This call will close the IModelDb object as it is required for processing and applying changesets
|
|
89
|
+
* @param briefcase iModel briefcase to use
|
|
90
|
+
* @param options options for processing
|
|
91
|
+
*/
|
|
92
|
+
async processChangesetsAndRoll(accessToken, briefcase, options) {
|
|
93
|
+
const iModelId = briefcase.iModelId;
|
|
94
|
+
const first = (await IModelHost_1.IModelHost.hubAccess.queryChangeset({ iModelId, changeset: { id: options.startChangesetId }, accessToken })).index;
|
|
95
|
+
const end = (await IModelHost_1.IModelHost.hubAccess.queryChangeset({ iModelId, changeset: { id: options.endChangesetId }, accessToken })).index;
|
|
96
|
+
const changesets = await IModelHost_1.IModelHost.hubAccess.downloadChangesets({ accessToken, iModelId, range: { first, end }, targetDir: BriefcaseManager_1.BriefcaseManager.getChangeSetsPath(iModelId) });
|
|
97
|
+
// ChangeSets need to be processed from newest to oldest
|
|
98
|
+
changesets.reverse();
|
|
99
|
+
// Close briefcase before doing processing and rolling briefcase
|
|
100
|
+
const dbFilename = briefcase.pathName;
|
|
101
|
+
const dbGuid = briefcase.iModelId;
|
|
102
|
+
briefcase.close();
|
|
103
|
+
// Process changesets
|
|
104
|
+
const status = this.nativeDb.processChangesetsAndRoll(dbFilename, dbGuid, changesets, options.rulesetId, options.filterSpatial, options.wantParents, options.wantPropertyChecksums, options.rulesetDir, options.tempDir, options.wantRelationshipCaching, options.relationshipCacheSize, options.wantChunkTraversal);
|
|
105
|
+
if (status !== core_bentley_1.DbResult.BE_SQLITE_OK)
|
|
106
|
+
throw new core_common_1.IModelError(status, "Failed to process changesets");
|
|
107
|
+
return status;
|
|
108
|
+
}
|
|
109
|
+
/** Get changed elements between two changesets
|
|
110
|
+
* @param startChangesetId Start Changeset Id
|
|
111
|
+
* @param endChangesetId End Changeset Id
|
|
112
|
+
* @returns Returns the changed elements between the changesets provided
|
|
113
|
+
* @throws [IModelError]($common) if the operation failed.
|
|
114
|
+
*/
|
|
115
|
+
getChangedElements(startChangesetId, endChangesetId) {
|
|
116
|
+
const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);
|
|
117
|
+
if (result.error || !result.result)
|
|
118
|
+
throw new core_common_1.IModelError(result.error ? result.error.status : -1, result.error ? result.error.message : "Problem getting changed elements");
|
|
119
|
+
return (result.result.changedElements);
|
|
120
|
+
}
|
|
121
|
+
/** Get changed models between two changesets
|
|
122
|
+
* @param startChangesetId Start Changeset Id
|
|
123
|
+
* @param endChangesetId End Changeset Id
|
|
124
|
+
* @returns Returns the changed models between the changesets provided
|
|
125
|
+
* @throws [IModelError]($common) if the operation failed.
|
|
126
|
+
*/
|
|
127
|
+
getChangedModels(startChangesetId, endChangesetId) {
|
|
128
|
+
const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);
|
|
129
|
+
if (result.error || !result.result)
|
|
130
|
+
throw new core_common_1.IModelError(result.error ? result.error.status : -1, result.error ? result.error.message : "Problem getting changed models");
|
|
131
|
+
return (result.result.changedModels);
|
|
132
|
+
}
|
|
133
|
+
/** Get changed models between two changesets
|
|
134
|
+
* @param startChangesetId Start Changeset Id
|
|
135
|
+
* @param endChangesetId End Changeset Id
|
|
136
|
+
* @returns Returns the changed models between the changesets provided
|
|
137
|
+
* @throws [IModelError]($common) if the operation failed.
|
|
138
|
+
*/
|
|
139
|
+
getChangeData(startChangesetId, endChangesetId) {
|
|
140
|
+
const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);
|
|
141
|
+
if (result.error)
|
|
142
|
+
throw new core_common_1.IModelError(result.error.status, result.error.message);
|
|
143
|
+
return result.result;
|
|
144
|
+
}
|
|
145
|
+
/** Returns true if the Changed Elements Db is open */
|
|
146
|
+
get isOpen() { return this.nativeDb.isOpen(); }
|
|
147
|
+
/** Returns true if the cache already contains this changeset Id */
|
|
148
|
+
isProcessed(changesetId) { return this.nativeDb.isProcessed(changesetId); }
|
|
149
|
+
/** Close the Db after saving any uncommitted changes.
|
|
150
|
+
* @throws [IModelError]($common) if the database is not open.
|
|
151
|
+
*/
|
|
152
|
+
closeDb() {
|
|
153
|
+
this.nativeDb.closeDb();
|
|
154
|
+
}
|
|
155
|
+
cleanCaches() {
|
|
156
|
+
this.nativeDb.cleanCaches();
|
|
157
|
+
}
|
|
158
|
+
/** @internal */
|
|
159
|
+
get nativeDb() {
|
|
160
|
+
if (!this._nativeDb)
|
|
161
|
+
throw new core_common_1.IModelError(core_bentley_1.IModelStatus.BadRequest, "ChangedElementsDb object has already been disposed.");
|
|
162
|
+
return this._nativeDb;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.ChangedElementsDb = ChangedElementsDb;
|
|
166
166
|
//# sourceMappingURL=ChangedElementsDb.js.map
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
import { GuidString } from "@itwin/core-bentley";
|
|
2
|
-
import { ChangeData, ChangedElements, ChangedModels } from "@itwin/core-common";
|
|
3
|
-
/** Utilities for querying changed elements caches */
|
|
4
|
-
/** @internal */
|
|
5
|
-
export declare class ChangedElementsManager {
|
|
6
|
-
/** Maintains a single entry since we will only have a cache per iModel, which means a ChangedElementsDb per backend instance */
|
|
7
|
-
private static _entry;
|
|
8
|
-
static getChangedElementsPathName(iModelId: GuidString): string;
|
|
9
|
-
/** Get changed elements Db */
|
|
10
|
-
private static getChangedElementsDb;
|
|
11
|
-
static cleanUp(): void;
|
|
12
|
-
/** Gets the changed elements from the cache if found
|
|
13
|
-
* @param iModelId Id of the iModel
|
|
14
|
-
* @param startChangesetId Start changeset Id
|
|
15
|
-
* @param endChangesetId End changeset Id
|
|
16
|
-
* @returns Changed elements if found
|
|
17
|
-
*/
|
|
18
|
-
static getChangedElements(iModelId: GuidString, startChangesetId: string, endChangesetId: string): ChangedElements | undefined;
|
|
19
|
-
/** Gets the changed models from the cache if found
|
|
20
|
-
* @param iModelId Id of the iModel
|
|
21
|
-
* @param startChangesetId Start changeset Id
|
|
22
|
-
* @param endChangesetId End changeset Id
|
|
23
|
-
* @returns Changed models if found
|
|
24
|
-
*/
|
|
25
|
-
static getChangedModels(iModelId: GuidString, startChangesetId: string, endChangesetId: string): ChangedModels | undefined;
|
|
26
|
-
/** Gets the change data (models and elements) from the cache if found
|
|
27
|
-
* @param iModelId Id of the iModel
|
|
28
|
-
* @param startChangesetId Start changeset Id
|
|
29
|
-
* @param endChangesetId End changeset Id
|
|
30
|
-
* @returns Changed models if found
|
|
31
|
-
*/
|
|
32
|
-
static getChangeData(iModelId: GuidString, startChangesetId: string, endChangesetId: string): ChangeData | undefined;
|
|
33
|
-
/** Checks if the cache contains information about the changeset
|
|
34
|
-
* @param iModelId Id of the iModel
|
|
35
|
-
* @param changesetId Changeset to check for
|
|
36
|
-
* @returns true if the changeset has been processed and exists in the cache
|
|
37
|
-
*/
|
|
38
|
-
static isProcessed(iModelId: GuidString, changesetId: string): boolean;
|
|
39
|
-
}
|
|
1
|
+
import { GuidString } from "@itwin/core-bentley";
|
|
2
|
+
import { ChangeData, ChangedElements, ChangedModels } from "@itwin/core-common";
|
|
3
|
+
/** Utilities for querying changed elements caches */
|
|
4
|
+
/** @internal */
|
|
5
|
+
export declare class ChangedElementsManager {
|
|
6
|
+
/** Maintains a single entry since we will only have a cache per iModel, which means a ChangedElementsDb per backend instance */
|
|
7
|
+
private static _entry;
|
|
8
|
+
static getChangedElementsPathName(iModelId: GuidString): string;
|
|
9
|
+
/** Get changed elements Db */
|
|
10
|
+
private static getChangedElementsDb;
|
|
11
|
+
static cleanUp(): void;
|
|
12
|
+
/** Gets the changed elements from the cache if found
|
|
13
|
+
* @param iModelId Id of the iModel
|
|
14
|
+
* @param startChangesetId Start changeset Id
|
|
15
|
+
* @param endChangesetId End changeset Id
|
|
16
|
+
* @returns Changed elements if found
|
|
17
|
+
*/
|
|
18
|
+
static getChangedElements(iModelId: GuidString, startChangesetId: string, endChangesetId: string): ChangedElements | undefined;
|
|
19
|
+
/** Gets the changed models from the cache if found
|
|
20
|
+
* @param iModelId Id of the iModel
|
|
21
|
+
* @param startChangesetId Start changeset Id
|
|
22
|
+
* @param endChangesetId End changeset Id
|
|
23
|
+
* @returns Changed models if found
|
|
24
|
+
*/
|
|
25
|
+
static getChangedModels(iModelId: GuidString, startChangesetId: string, endChangesetId: string): ChangedModels | undefined;
|
|
26
|
+
/** Gets the change data (models and elements) from the cache if found
|
|
27
|
+
* @param iModelId Id of the iModel
|
|
28
|
+
* @param startChangesetId Start changeset Id
|
|
29
|
+
* @param endChangesetId End changeset Id
|
|
30
|
+
* @returns Changed models if found
|
|
31
|
+
*/
|
|
32
|
+
static getChangeData(iModelId: GuidString, startChangesetId: string, endChangesetId: string): ChangeData | undefined;
|
|
33
|
+
/** Checks if the cache contains information about the changeset
|
|
34
|
+
* @param iModelId Id of the iModel
|
|
35
|
+
* @param changesetId Changeset to check for
|
|
36
|
+
* @returns true if the changeset has been processed and exists in the cache
|
|
37
|
+
*/
|
|
38
|
+
static isProcessed(iModelId: GuidString, changesetId: string): boolean;
|
|
39
|
+
}
|
|
40
40
|
//# sourceMappingURL=ChangedElementsManager.d.ts.map
|
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ChangedElementsManager = void 0;
|
|
4
|
-
const BriefcaseManager_1 = require("./BriefcaseManager");
|
|
5
|
-
const ChangedElementsDb_1 = require("./ChangedElementsDb");
|
|
6
|
-
const IModelJsFs_1 = require("./IModelJsFs");
|
|
7
|
-
/** Utilities for querying changed elements caches */
|
|
8
|
-
/** @internal */
|
|
9
|
-
class ChangedElementsManager {
|
|
10
|
-
static getChangedElementsPathName(iModelId) { return BriefcaseManager_1.BriefcaseManager.getChangedElementsPathName(iModelId); }
|
|
11
|
-
/** Get changed elements Db */
|
|
12
|
-
static getChangedElementsDb(iModelId) {
|
|
13
|
-
if (this._entry && this._entry.iModelId === iModelId)
|
|
14
|
-
return this._entry.db;
|
|
15
|
-
if (this._entry && this._entry.iModelId !== iModelId) {
|
|
16
|
-
this._entry.db.closeDb();
|
|
17
|
-
this._entry.db.cleanCaches();
|
|
18
|
-
this._entry = undefined;
|
|
19
|
-
}
|
|
20
|
-
if (!this._entry) {
|
|
21
|
-
const path = ChangedElementsManager.getChangedElementsPathName(iModelId);
|
|
22
|
-
if (!IModelJsFs_1.IModelJsFs.existsSync(path))
|
|
23
|
-
return undefined;
|
|
24
|
-
const db = ChangedElementsDb_1.ChangedElementsDb.openDb(path);
|
|
25
|
-
this._entry = {
|
|
26
|
-
iModelId,
|
|
27
|
-
db,
|
|
28
|
-
};
|
|
29
|
-
return db;
|
|
30
|
-
}
|
|
31
|
-
return undefined;
|
|
32
|
-
}
|
|
33
|
-
static cleanUp() {
|
|
34
|
-
if (this._entry) {
|
|
35
|
-
this._entry.db.closeDb();
|
|
36
|
-
this._entry.db.cleanCaches();
|
|
37
|
-
this._entry = undefined;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/** Gets the changed elements from the cache if found
|
|
41
|
-
* @param iModelId Id of the iModel
|
|
42
|
-
* @param startChangesetId Start changeset Id
|
|
43
|
-
* @param endChangesetId End changeset Id
|
|
44
|
-
* @returns Changed elements if found
|
|
45
|
-
*/
|
|
46
|
-
static getChangedElements(iModelId, startChangesetId, endChangesetId) {
|
|
47
|
-
const db = ChangedElementsManager.getChangedElementsDb(iModelId);
|
|
48
|
-
if (!db)
|
|
49
|
-
return undefined;
|
|
50
|
-
return db.getChangedElements(startChangesetId, endChangesetId);
|
|
51
|
-
}
|
|
52
|
-
/** Gets the changed models from the cache if found
|
|
53
|
-
* @param iModelId Id of the iModel
|
|
54
|
-
* @param startChangesetId Start changeset Id
|
|
55
|
-
* @param endChangesetId End changeset Id
|
|
56
|
-
* @returns Changed models if found
|
|
57
|
-
*/
|
|
58
|
-
static getChangedModels(iModelId, startChangesetId, endChangesetId) {
|
|
59
|
-
const db = ChangedElementsManager.getChangedElementsDb(iModelId);
|
|
60
|
-
if (!db)
|
|
61
|
-
return undefined;
|
|
62
|
-
return db.getChangedModels(startChangesetId, endChangesetId);
|
|
63
|
-
}
|
|
64
|
-
/** Gets the change data (models and elements) from the cache if found
|
|
65
|
-
* @param iModelId Id of the iModel
|
|
66
|
-
* @param startChangesetId Start changeset Id
|
|
67
|
-
* @param endChangesetId End changeset Id
|
|
68
|
-
* @returns Changed models if found
|
|
69
|
-
*/
|
|
70
|
-
static getChangeData(iModelId, startChangesetId, endChangesetId) {
|
|
71
|
-
const db = ChangedElementsManager.getChangedElementsDb(iModelId);
|
|
72
|
-
if (!db)
|
|
73
|
-
return undefined;
|
|
74
|
-
return db.getChangeData(startChangesetId, endChangesetId);
|
|
75
|
-
}
|
|
76
|
-
/** Checks if the cache contains information about the changeset
|
|
77
|
-
* @param iModelId Id of the iModel
|
|
78
|
-
* @param changesetId Changeset to check for
|
|
79
|
-
* @returns true if the changeset has been processed and exists in the cache
|
|
80
|
-
*/
|
|
81
|
-
static isProcessed(iModelId, changesetId) {
|
|
82
|
-
const db = ChangedElementsManager.getChangedElementsDb(iModelId);
|
|
83
|
-
if (!db)
|
|
84
|
-
return false;
|
|
85
|
-
return db.isProcessed(changesetId);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
exports.ChangedElementsManager = ChangedElementsManager;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChangedElementsManager = void 0;
|
|
4
|
+
const BriefcaseManager_1 = require("./BriefcaseManager");
|
|
5
|
+
const ChangedElementsDb_1 = require("./ChangedElementsDb");
|
|
6
|
+
const IModelJsFs_1 = require("./IModelJsFs");
|
|
7
|
+
/** Utilities for querying changed elements caches */
|
|
8
|
+
/** @internal */
|
|
9
|
+
class ChangedElementsManager {
|
|
10
|
+
static getChangedElementsPathName(iModelId) { return BriefcaseManager_1.BriefcaseManager.getChangedElementsPathName(iModelId); }
|
|
11
|
+
/** Get changed elements Db */
|
|
12
|
+
static getChangedElementsDb(iModelId) {
|
|
13
|
+
if (this._entry && this._entry.iModelId === iModelId)
|
|
14
|
+
return this._entry.db;
|
|
15
|
+
if (this._entry && this._entry.iModelId !== iModelId) {
|
|
16
|
+
this._entry.db.closeDb();
|
|
17
|
+
this._entry.db.cleanCaches();
|
|
18
|
+
this._entry = undefined;
|
|
19
|
+
}
|
|
20
|
+
if (!this._entry) {
|
|
21
|
+
const path = ChangedElementsManager.getChangedElementsPathName(iModelId);
|
|
22
|
+
if (!IModelJsFs_1.IModelJsFs.existsSync(path))
|
|
23
|
+
return undefined;
|
|
24
|
+
const db = ChangedElementsDb_1.ChangedElementsDb.openDb(path);
|
|
25
|
+
this._entry = {
|
|
26
|
+
iModelId,
|
|
27
|
+
db,
|
|
28
|
+
};
|
|
29
|
+
return db;
|
|
30
|
+
}
|
|
31
|
+
return undefined;
|
|
32
|
+
}
|
|
33
|
+
static cleanUp() {
|
|
34
|
+
if (this._entry) {
|
|
35
|
+
this._entry.db.closeDb();
|
|
36
|
+
this._entry.db.cleanCaches();
|
|
37
|
+
this._entry = undefined;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Gets the changed elements from the cache if found
|
|
41
|
+
* @param iModelId Id of the iModel
|
|
42
|
+
* @param startChangesetId Start changeset Id
|
|
43
|
+
* @param endChangesetId End changeset Id
|
|
44
|
+
* @returns Changed elements if found
|
|
45
|
+
*/
|
|
46
|
+
static getChangedElements(iModelId, startChangesetId, endChangesetId) {
|
|
47
|
+
const db = ChangedElementsManager.getChangedElementsDb(iModelId);
|
|
48
|
+
if (!db)
|
|
49
|
+
return undefined;
|
|
50
|
+
return db.getChangedElements(startChangesetId, endChangesetId);
|
|
51
|
+
}
|
|
52
|
+
/** Gets the changed models from the cache if found
|
|
53
|
+
* @param iModelId Id of the iModel
|
|
54
|
+
* @param startChangesetId Start changeset Id
|
|
55
|
+
* @param endChangesetId End changeset Id
|
|
56
|
+
* @returns Changed models if found
|
|
57
|
+
*/
|
|
58
|
+
static getChangedModels(iModelId, startChangesetId, endChangesetId) {
|
|
59
|
+
const db = ChangedElementsManager.getChangedElementsDb(iModelId);
|
|
60
|
+
if (!db)
|
|
61
|
+
return undefined;
|
|
62
|
+
return db.getChangedModels(startChangesetId, endChangesetId);
|
|
63
|
+
}
|
|
64
|
+
/** Gets the change data (models and elements) from the cache if found
|
|
65
|
+
* @param iModelId Id of the iModel
|
|
66
|
+
* @param startChangesetId Start changeset Id
|
|
67
|
+
* @param endChangesetId End changeset Id
|
|
68
|
+
* @returns Changed models if found
|
|
69
|
+
*/
|
|
70
|
+
static getChangeData(iModelId, startChangesetId, endChangesetId) {
|
|
71
|
+
const db = ChangedElementsManager.getChangedElementsDb(iModelId);
|
|
72
|
+
if (!db)
|
|
73
|
+
return undefined;
|
|
74
|
+
return db.getChangeData(startChangesetId, endChangesetId);
|
|
75
|
+
}
|
|
76
|
+
/** Checks if the cache contains information about the changeset
|
|
77
|
+
* @param iModelId Id of the iModel
|
|
78
|
+
* @param changesetId Changeset to check for
|
|
79
|
+
* @returns true if the changeset has been processed and exists in the cache
|
|
80
|
+
*/
|
|
81
|
+
static isProcessed(iModelId, changesetId) {
|
|
82
|
+
const db = ChangedElementsManager.getChangedElementsDb(iModelId);
|
|
83
|
+
if (!db)
|
|
84
|
+
return false;
|
|
85
|
+
return db.isProcessed(changesetId);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.ChangedElementsManager = ChangedElementsManager;
|
|
89
89
|
//# sourceMappingURL=ChangedElementsManager.js.map
|