@pilotdev/pilot-bim-dataprovider 26.1.0 → 26.3.0
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/lib/__tests__/test_utils/BinaryCloudTestUtils.d.ts +21 -0
- package/lib/__tests__/test_utils/BinaryCloudTestUtils.js +231 -0
- package/lib/__tests__/test_utils/BinaryCloudTestUtils.js.map +1 -0
- package/lib/src/BimDataProviderApi.d.ts +1 -1
- package/lib/src/model/BimDataClasses.d.ts +22 -10
- package/lib/src/model/BimDataClasses.js +18 -1
- package/lib/src/model/BimDataClasses.js.map +1 -1
- package/lib/src/model/BimDataCloudPart.d.ts +1 -1
- package/lib/src/model/BimDataCloudPart.js +2 -2
- package/lib/src/model/BimDataCloudPart.js.map +1 -1
- package/lib/src/utils/Consts.d.ts +7 -0
- package/lib/src/utils/Consts.js +8 -1
- package/lib/src/utils/Consts.js.map +1 -1
- package/lib/src/utils/ViewerTools.d.ts +14 -7
- package/lib/src/utils/ViewerTools.js +67 -20
- package/lib/src/utils/ViewerTools.js.map +1 -1
- package/lib/src/wasm/WorkerApi.d.ts +1 -1
- package/lib/src/wasm/cloud_readers/BinaryCloudReader.d.ts +18 -5
- package/lib/src/wasm/cloud_readers/BinaryCloudReader.js +219 -202
- package/lib/src/wasm/cloud_readers/BinaryCloudReader.js.map +1 -1
- package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.d.ts +42 -0
- package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.js +229 -0
- package/lib/src/wasm/cloud_readers/ICacheableBinaryCloud.js.map +1 -0
- package/lib/src/wasm/cloud_readers/ICloudReader.d.ts +1 -1
- package/lib/src/wasm/cloud_readers/WasmCloudReader.d.ts +1 -1
- package/lib/src/wasm/cloud_readers/WasmCloudReader.js +4 -5
- package/lib/src/wasm/cloud_readers/WasmCloudReader.js.map +1 -1
- package/lib/src/wasm/data_accessors/CloudPartAccessor.d.ts +1 -1
- package/lib/src/wasm/data_accessors/CloudPartAccessor.js +6 -6
- package/lib/src/wasm/data_accessors/CloudPartAccessor.js.map +1 -1
- package/lib/src/wasm/data_accessors/FileAccessor.d.ts +1 -1
- package/lib/src/wasm/data_accessors/FileAccessor.js +50 -35
- package/lib/src/wasm/data_accessors/FileAccessor.js.map +1 -1
- package/lib/src/wasm/file-system/ChunkCacheFile.d.ts +34 -0
- package/lib/src/wasm/file-system/ChunkCacheFile.js +254 -0
- package/lib/src/wasm/file-system/ChunkCacheFile.js.map +1 -0
- package/lib/src/wasm/file-system/File.d.ts +4 -1
- package/lib/src/wasm/file-system/File.js +11 -3
- package/lib/src/wasm/file-system/File.js.map +1 -1
- package/lib/src/wasm/file-system/PartialFile.d.ts +3 -2
- package/lib/src/wasm/file-system/PartialFile.js +26 -32
- package/lib/src/wasm/file-system/PartialFile.js.map +1 -1
- package/lib/src/wasm/file-system/RemoteFile.d.ts +24 -0
- package/lib/src/wasm/file-system/RemoteFile.js +106 -0
- package/lib/src/wasm/file-system/RemoteFile.js.map +1 -0
- package/lib/src/wasm/wasm.worker-node.cjs +1 -1
- package/lib/src/wasm/wasm.worker-web.cjs +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { IFile } from "./File.js";
|
|
2
|
+
import { FileInfo } from "./IFileSystem.js";
|
|
3
|
+
export declare class ChunkCacheFile implements IFile {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
private _metaFile;
|
|
6
|
+
private _openSynchAccessCounter;
|
|
7
|
+
private _fileSize;
|
|
8
|
+
private _isInSynchMode;
|
|
9
|
+
private _cacheRoot?;
|
|
10
|
+
private _cachedChunks;
|
|
11
|
+
private _metadataUpdater?;
|
|
12
|
+
private constructor();
|
|
13
|
+
static fromFile(file: IFile): Promise<ChunkCacheFile>;
|
|
14
|
+
getFileSignature(): Promise<Uint8Array>;
|
|
15
|
+
write(buffer: ArrayBuffer, position: number): Promise<void>;
|
|
16
|
+
read(position: number, size: number): Promise<Uint8Array>;
|
|
17
|
+
copyTo(file: IFile): Promise<void>;
|
|
18
|
+
openSyncFileAccess(): Promise<void>;
|
|
19
|
+
closeSyncFileAccess(): Promise<void>;
|
|
20
|
+
getFileInfo(): FileInfo;
|
|
21
|
+
isValid(): Promise<boolean>;
|
|
22
|
+
remove(): Promise<void>;
|
|
23
|
+
removeCache(): Promise<void>;
|
|
24
|
+
close(): Promise<void>;
|
|
25
|
+
isValidChunk(path: string, desiredSize: number): Promise<boolean>;
|
|
26
|
+
readChunk(path: string, position?: number, bytesToRead?: number): Promise<Uint8Array>;
|
|
27
|
+
writeChunk(path: string, buffer: Uint8Array): Promise<void>;
|
|
28
|
+
private storeMetadata;
|
|
29
|
+
private readMetadata;
|
|
30
|
+
initCache(): Promise<void>;
|
|
31
|
+
private closeCache;
|
|
32
|
+
private getCachedChunk;
|
|
33
|
+
private updateMetadata;
|
|
34
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { CacheFileSignature, OPFS_BIM_CACHE_FOLDER } from "../../utils/Consts.js";
|
|
2
|
+
import { BinaryConverter, isOPFSEnabled } from "../../utils/ViewerTools.js";
|
|
3
|
+
export class ChunkCacheFile {
|
|
4
|
+
id;
|
|
5
|
+
_metaFile;
|
|
6
|
+
_openSynchAccessCounter;
|
|
7
|
+
_fileSize;
|
|
8
|
+
_isInSynchMode;
|
|
9
|
+
_cacheRoot;
|
|
10
|
+
_cachedChunks;
|
|
11
|
+
_metadataUpdater;
|
|
12
|
+
constructor(file) {
|
|
13
|
+
this._metaFile = file;
|
|
14
|
+
this.id = file.id;
|
|
15
|
+
this._cachedChunks = new Map();
|
|
16
|
+
this._openSynchAccessCounter = 0;
|
|
17
|
+
this._isInSynchMode = false;
|
|
18
|
+
this._fileSize = 0;
|
|
19
|
+
}
|
|
20
|
+
static async fromFile(file) {
|
|
21
|
+
const cloudCacheFile = new ChunkCacheFile(file);
|
|
22
|
+
await cloudCacheFile.readMetadata();
|
|
23
|
+
await cloudCacheFile.storeMetadata();
|
|
24
|
+
await cloudCacheFile.initCache();
|
|
25
|
+
return cloudCacheFile;
|
|
26
|
+
}
|
|
27
|
+
async getFileSignature() {
|
|
28
|
+
return CacheFileSignature;
|
|
29
|
+
}
|
|
30
|
+
async write(buffer, position) {
|
|
31
|
+
return this._metaFile.write(buffer, position);
|
|
32
|
+
}
|
|
33
|
+
async read(position, size) {
|
|
34
|
+
return this._metaFile.read(position, size);
|
|
35
|
+
}
|
|
36
|
+
async copyTo(file) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
async openSyncFileAccess() {
|
|
40
|
+
this._openSynchAccessCounter++;
|
|
41
|
+
this._isInSynchMode = this._openSynchAccessCounter > 0;
|
|
42
|
+
return this._metaFile.openSyncFileAccess();
|
|
43
|
+
}
|
|
44
|
+
async closeSyncFileAccess() {
|
|
45
|
+
this._openSynchAccessCounter--;
|
|
46
|
+
this._isInSynchMode = this._openSynchAccessCounter > 0;
|
|
47
|
+
if (!this._isInSynchMode) {
|
|
48
|
+
this._openSynchAccessCounter = 0;
|
|
49
|
+
for (const [, chunk] of this._cachedChunks) {
|
|
50
|
+
chunk.lock.then(() => {
|
|
51
|
+
chunk.synchHandle?.close();
|
|
52
|
+
chunk.synchHandle = null;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return this._metaFile.closeSyncFileAccess();
|
|
57
|
+
}
|
|
58
|
+
getFileInfo() {
|
|
59
|
+
return {
|
|
60
|
+
path: this.id,
|
|
61
|
+
size: this._fileSize,
|
|
62
|
+
sizeOnDisk: this._fileSize,
|
|
63
|
+
lastModified: this._metaFile.getFileInfo().lastModified
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async isValid() {
|
|
67
|
+
if (!(await this._metaFile.isValid()))
|
|
68
|
+
return false;
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
async remove() {
|
|
72
|
+
await this.removeCache();
|
|
73
|
+
await this._metaFile.remove();
|
|
74
|
+
}
|
|
75
|
+
async removeCache() {
|
|
76
|
+
this.closeCache();
|
|
77
|
+
if (isOPFSEnabled) {
|
|
78
|
+
try {
|
|
79
|
+
const rootDirectory = await navigator.storage.getDirectory();
|
|
80
|
+
const cacheDirectory = await rootDirectory.getDirectoryHandle(OPFS_BIM_CACHE_FOLDER);
|
|
81
|
+
await cacheDirectory.removeEntry(this.id, { recursive: true });
|
|
82
|
+
this._cacheRoot = undefined;
|
|
83
|
+
this._fileSize = 0;
|
|
84
|
+
await this.storeMetadata();
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
/**/
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async close() {
|
|
92
|
+
this.closeCache();
|
|
93
|
+
await this._metaFile.close();
|
|
94
|
+
}
|
|
95
|
+
async isValidChunk(path, desiredSize) {
|
|
96
|
+
const cachedChunk = this.getCachedChunk(path);
|
|
97
|
+
if (!cachedChunk)
|
|
98
|
+
return false;
|
|
99
|
+
if (cachedChunk.isValid)
|
|
100
|
+
return true;
|
|
101
|
+
while (cachedChunk.isLocked)
|
|
102
|
+
await cachedChunk.lock;
|
|
103
|
+
cachedChunk.isValid = cachedChunk.size == desiredSize;
|
|
104
|
+
return cachedChunk.isValid;
|
|
105
|
+
}
|
|
106
|
+
async readChunk(path, position, bytesToRead) {
|
|
107
|
+
const cachedChunk = this.getCachedChunk(path);
|
|
108
|
+
if (!cachedChunk || !cachedChunk.isValid)
|
|
109
|
+
throw new Error("Trying to read invalid chunk.");
|
|
110
|
+
// ждем пока чанк освободится
|
|
111
|
+
while (cachedChunk.isLocked)
|
|
112
|
+
await cachedChunk.lock;
|
|
113
|
+
if (!cachedChunk.handle || !cachedChunk.isValid)
|
|
114
|
+
throw new Error("Trying to read invalid chunk.");
|
|
115
|
+
const pos = position ?? 0;
|
|
116
|
+
bytesToRead ??= cachedChunk.size;
|
|
117
|
+
const buffer = new Uint8Array(bytesToRead);
|
|
118
|
+
// пытаемся выполнить синхронное чтение
|
|
119
|
+
if (cachedChunk.synchHandle) {
|
|
120
|
+
cachedChunk.synchHandle.read(buffer, { at: pos });
|
|
121
|
+
return buffer;
|
|
122
|
+
}
|
|
123
|
+
// выполняем операцию асинхронно
|
|
124
|
+
const promise = async () => {
|
|
125
|
+
if (this._isInSynchMode && !cachedChunk.synchHandle) {
|
|
126
|
+
cachedChunk.synchHandle = await cachedChunk.handle.createSyncAccessHandle();
|
|
127
|
+
cachedChunk.synchHandle.read(buffer, { at: pos });
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
const blob = await cachedChunk.handle.getFile();
|
|
131
|
+
const result = await blob.slice(pos, pos + buffer.byteLength).arrayBuffer();
|
|
132
|
+
buffer.set(new Uint8Array(result));
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
cachedChunk.isLocked = true;
|
|
136
|
+
cachedChunk.lock = promise()
|
|
137
|
+
.catch(() => { cachedChunk.isValid = false; })
|
|
138
|
+
.finally(() => { cachedChunk.isLocked = false; });
|
|
139
|
+
await cachedChunk.lock;
|
|
140
|
+
return buffer;
|
|
141
|
+
}
|
|
142
|
+
async writeChunk(path, buffer) {
|
|
143
|
+
const cachedChunk = this.getCachedChunk(path);
|
|
144
|
+
if (!cachedChunk)
|
|
145
|
+
return;
|
|
146
|
+
// ждем пока чанк освободится
|
|
147
|
+
while (cachedChunk.isLocked)
|
|
148
|
+
await cachedChunk.lock;
|
|
149
|
+
if (!cachedChunk.handle)
|
|
150
|
+
return;
|
|
151
|
+
// пытаемся выполнить синхронную запись в файл
|
|
152
|
+
if (cachedChunk.synchHandle) {
|
|
153
|
+
cachedChunk.synchHandle.truncate(0);
|
|
154
|
+
cachedChunk.synchHandle.write(buffer);
|
|
155
|
+
cachedChunk.size = cachedChunk.synchHandle.getSize();
|
|
156
|
+
cachedChunk.isValid = cachedChunk.size == buffer.byteLength;
|
|
157
|
+
this._fileSize += cachedChunk.size;
|
|
158
|
+
this.updateMetadata();
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
// выполняем операцию асинхронно
|
|
162
|
+
const promise = async () => {
|
|
163
|
+
if (this._isInSynchMode && !cachedChunk.synchHandle) {
|
|
164
|
+
cachedChunk.synchHandle = await cachedChunk.handle.createSyncAccessHandle();
|
|
165
|
+
cachedChunk.synchHandle.truncate(0);
|
|
166
|
+
cachedChunk.synchHandle.write(buffer);
|
|
167
|
+
cachedChunk.size = cachedChunk.synchHandle.getSize();
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
/* eslint-disable-next-line -- так как собираем и под node и под web, а createWritable определен только для web? (lib.dom) */
|
|
171
|
+
const stream = await cachedChunk.handle.createWritable();
|
|
172
|
+
await stream.truncate(0);
|
|
173
|
+
await stream.write({ type: "write", data: buffer });
|
|
174
|
+
await stream.close();
|
|
175
|
+
cachedChunk.size = (await cachedChunk.handle.getFile()).size;
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
cachedChunk.isLocked = true;
|
|
179
|
+
return cachedChunk.lock = promise()
|
|
180
|
+
.then(() => {
|
|
181
|
+
cachedChunk.isValid = cachedChunk.size == buffer.byteLength;
|
|
182
|
+
this._fileSize += cachedChunk.size;
|
|
183
|
+
this.updateMetadata();
|
|
184
|
+
})
|
|
185
|
+
.catch(() => { cachedChunk.isValid = false; })
|
|
186
|
+
.finally(() => { cachedChunk.isLocked = false; });
|
|
187
|
+
}
|
|
188
|
+
async storeMetadata() {
|
|
189
|
+
const metaFileSize = CacheFileSignature.byteLength + 4; // file signature + uint32 fileSize
|
|
190
|
+
const bytesArray = new Uint8Array(metaFileSize);
|
|
191
|
+
bytesArray.set(CacheFileSignature, 0);
|
|
192
|
+
BinaryConverter.toU32(bytesArray, this._fileSize, CacheFileSignature.byteLength);
|
|
193
|
+
await this._metaFile.write(bytesArray.buffer, 0);
|
|
194
|
+
}
|
|
195
|
+
async readMetadata() {
|
|
196
|
+
const metaFileSize = CacheFileSignature.byteLength + 4; // file signature + uint32 fileSize
|
|
197
|
+
const bufferView = await this._metaFile.read(0, metaFileSize);
|
|
198
|
+
this._fileSize = BinaryConverter.fromU32(bufferView, CacheFileSignature.byteLength);
|
|
199
|
+
}
|
|
200
|
+
async initCache() {
|
|
201
|
+
if (isOPFSEnabled) {
|
|
202
|
+
const rootDirectory = await navigator.storage.getDirectory();
|
|
203
|
+
const bimCacheDir = await rootDirectory.getDirectoryHandle(OPFS_BIM_CACHE_FOLDER, { create: true });
|
|
204
|
+
this._cacheRoot = await bimCacheDir.getDirectoryHandle(this.id, { create: true });
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
closeCache() {
|
|
208
|
+
for (const [, chunk] of this._cachedChunks) {
|
|
209
|
+
chunk.lock.then(() => {
|
|
210
|
+
chunk.synchHandle?.close();
|
|
211
|
+
chunk.synchHandle = null;
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
this._cachedChunks.clear();
|
|
215
|
+
}
|
|
216
|
+
getCachedChunk(path) {
|
|
217
|
+
if (!this._cacheRoot)
|
|
218
|
+
return;
|
|
219
|
+
const root = this._cacheRoot;
|
|
220
|
+
if (this._cachedChunks.has(path))
|
|
221
|
+
return this._cachedChunks.get(path);
|
|
222
|
+
const cache = this._cachedChunks;
|
|
223
|
+
const chunk = { isLocked: true, isValid: false, handle: null, synchHandle: null, lock: Promise.resolve(), size: 0 };
|
|
224
|
+
cache.set(path, chunk);
|
|
225
|
+
const getChunk = async () => {
|
|
226
|
+
try {
|
|
227
|
+
// пытаемся получить файл из OPFS
|
|
228
|
+
chunk.handle = await root.getFileHandle(path, { create: true });
|
|
229
|
+
chunk.size = (await chunk.handle.getFile()).size;
|
|
230
|
+
chunk.isValid = false;
|
|
231
|
+
chunk.isLocked = false;
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
chunk.isValid = false;
|
|
235
|
+
chunk.isLocked = false;
|
|
236
|
+
cache.delete(path);
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
chunk.lock = getChunk();
|
|
240
|
+
return chunk;
|
|
241
|
+
}
|
|
242
|
+
updateMetadata() {
|
|
243
|
+
if (this._metadataUpdater)
|
|
244
|
+
return;
|
|
245
|
+
this._metadataUpdater = new Promise(resolve => {
|
|
246
|
+
setTimeout(async () => {
|
|
247
|
+
this.storeMetadata();
|
|
248
|
+
this._metadataUpdater = undefined;
|
|
249
|
+
resolve();
|
|
250
|
+
}, 1000);
|
|
251
|
+
}).catch();
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=ChunkCacheFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChunkCacheFile.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/ChunkCacheFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { FileInfo, IFileSystem } from "./IFileSystem.js";
|
|
2
2
|
export interface IFile {
|
|
3
3
|
readonly id: string;
|
|
4
|
+
getFileSignature(): Promise<Uint8Array>;
|
|
4
5
|
write(buffer: ArrayBuffer, position: number): Promise<void>;
|
|
5
6
|
read(position: number, size: number): Promise<Uint8Array>;
|
|
6
7
|
copyTo(file: IFile): Promise<void>;
|
|
@@ -14,10 +15,12 @@ export interface IFile {
|
|
|
14
15
|
export declare class File implements IFile {
|
|
15
16
|
private readonly _fs;
|
|
16
17
|
readonly id: string;
|
|
18
|
+
private _signature;
|
|
17
19
|
private constructor();
|
|
18
20
|
static open(fs: IFileSystem, id: string, options?: {
|
|
19
21
|
create: boolean;
|
|
20
|
-
}): Promise<File>;
|
|
22
|
+
}, signature?: Uint8Array | null): Promise<File>;
|
|
23
|
+
getFileSignature(): Promise<Uint8Array>;
|
|
21
24
|
write(buffer: ArrayBuffer, position: number): Promise<void>;
|
|
22
25
|
read(position: number, size: number): Promise<Uint8Array>;
|
|
23
26
|
copyTo(file: IFile): Promise<void>;
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
+
import { MaxBimFileSignatureByteLength } from "../../utils/Consts.js";
|
|
1
2
|
export class File {
|
|
2
3
|
_fs;
|
|
3
4
|
id;
|
|
4
|
-
|
|
5
|
+
_signature;
|
|
6
|
+
constructor(_fs, id, _signature = null) {
|
|
5
7
|
this._fs = _fs;
|
|
6
8
|
this.id = id;
|
|
9
|
+
this._signature = _signature;
|
|
7
10
|
}
|
|
8
|
-
static async open(fs, id, options = { create: false }) {
|
|
11
|
+
static async open(fs, id, options = { create: false }, signature = null) {
|
|
9
12
|
if (!fs.isFileExists(id)) {
|
|
10
13
|
if (options.create) {
|
|
11
14
|
await fs.makeFile(id, new Uint8Array());
|
|
@@ -14,7 +17,12 @@ export class File {
|
|
|
14
17
|
throw new Error("File is not exist.");
|
|
15
18
|
}
|
|
16
19
|
}
|
|
17
|
-
return new File(fs, id);
|
|
20
|
+
return new File(fs, id, signature);
|
|
21
|
+
}
|
|
22
|
+
async getFileSignature() {
|
|
23
|
+
if (!this._signature)
|
|
24
|
+
this._signature = await this.read(0, MaxBimFileSignatureByteLength);
|
|
25
|
+
return this._signature;
|
|
18
26
|
}
|
|
19
27
|
async write(buffer, position) {
|
|
20
28
|
return this._fs.writeFile(this.id, new Uint8Array(buffer), position);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"File.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/File.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"File.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/File.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ type ChunkRwInfo = {
|
|
|
8
8
|
rwByteLength: number;
|
|
9
9
|
};
|
|
10
10
|
export declare class PartialFile implements IFile {
|
|
11
|
-
readonly fs: IFileSystem;
|
|
12
11
|
readonly id: string;
|
|
13
12
|
private _metaFile;
|
|
14
13
|
private _url;
|
|
@@ -21,9 +20,11 @@ export declare class PartialFile implements IFile {
|
|
|
21
20
|
private _cacheRoot?;
|
|
22
21
|
private _cachedDirs;
|
|
23
22
|
private _metadataUpdater?;
|
|
23
|
+
private _signature;
|
|
24
24
|
private constructor();
|
|
25
25
|
static fromUrl(fs: IFileSystem, id: string, url: string, fileSize: number): Promise<PartialFile>;
|
|
26
|
-
static fromFile(
|
|
26
|
+
static fromFile(file: IFile): Promise<PartialFile>;
|
|
27
|
+
getFileSignature(): Promise<Uint8Array>;
|
|
27
28
|
write(buffer: ArrayBuffer, position: number): Promise<void>;
|
|
28
29
|
read(position: number, size: number): Promise<Uint8Array>;
|
|
29
30
|
copyTo(file: IFile): Promise<void>;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { OPFS_CACHE_CHUNK_SIZE, OPFS_BIM_CACHE_FOLDER, PartialFileSignature } from "../../utils/Consts.js";
|
|
1
|
+
import { OPFS_CACHE_CHUNK_SIZE, OPFS_BIM_CACHE_FOLDER, PartialFileSignature, MaxBimFileSignatureByteLength } from "../../utils/Consts.js";
|
|
2
2
|
import { BinaryConverter, isOPFSEnabled } from "../../utils/ViewerTools.js";
|
|
3
3
|
import { FetchStatus, FileLoader } from "./FileLoader.js";
|
|
4
4
|
import { File } from "./File.js";
|
|
5
5
|
export class PartialFile {
|
|
6
|
-
fs;
|
|
7
6
|
id;
|
|
8
7
|
_metaFile;
|
|
9
8
|
_url;
|
|
@@ -16,8 +15,8 @@ export class PartialFile {
|
|
|
16
15
|
_cacheRoot;
|
|
17
16
|
_cachedDirs;
|
|
18
17
|
_metadataUpdater;
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
_signature = null;
|
|
19
|
+
constructor(file, url, fileSize) {
|
|
21
20
|
this._metaFile = file;
|
|
22
21
|
this.id = file.id;
|
|
23
22
|
this._cachedDirs = new Map();
|
|
@@ -31,18 +30,22 @@ export class PartialFile {
|
|
|
31
30
|
}
|
|
32
31
|
static async fromUrl(fs, id, url, fileSize) {
|
|
33
32
|
const file = await File.open(fs, id, { create: true });
|
|
34
|
-
const partialFile = new PartialFile(
|
|
33
|
+
const partialFile = new PartialFile(file, url, fileSize);
|
|
35
34
|
await partialFile.storeMetadata();
|
|
36
35
|
await partialFile.initCache();
|
|
37
36
|
return partialFile;
|
|
38
37
|
}
|
|
39
|
-
static async fromFile(
|
|
40
|
-
const
|
|
41
|
-
const partialFile = new PartialFile(fs, file);
|
|
38
|
+
static async fromFile(file) {
|
|
39
|
+
const partialFile = new PartialFile(file);
|
|
42
40
|
await partialFile.readMetadata();
|
|
43
41
|
await partialFile.initCache();
|
|
44
42
|
return partialFile;
|
|
45
43
|
}
|
|
44
|
+
async getFileSignature() {
|
|
45
|
+
if (!this._signature)
|
|
46
|
+
this._signature = await this.read(0, MaxBimFileSignatureByteLength);
|
|
47
|
+
return this._signature;
|
|
48
|
+
}
|
|
46
49
|
async write(buffer, position) {
|
|
47
50
|
if (!this._cacheRoot)
|
|
48
51
|
return;
|
|
@@ -165,46 +168,37 @@ export class PartialFile {
|
|
|
165
168
|
const urlBytes = encoder.encode(this._url);
|
|
166
169
|
const urlLength = urlBytes.length;
|
|
167
170
|
const metaFileSize = PartialFileSignature.byteLength + metadataSize + urlLength;
|
|
168
|
-
const
|
|
169
|
-
const bytes = new Uint8Array(buffer);
|
|
170
|
-
const byteReprArray = new Uint8Array(4);
|
|
171
|
-
const uintReprArray = new Uint32Array(byteReprArray.buffer);
|
|
171
|
+
const bytesArray = new Uint8Array(metaFileSize);
|
|
172
172
|
let offset = 0;
|
|
173
|
-
|
|
173
|
+
bytesArray.set(PartialFileSignature, offset);
|
|
174
174
|
offset += PartialFileSignature.byteLength;
|
|
175
|
-
|
|
176
|
-
bytes.set(byteReprArray, offset);
|
|
175
|
+
BinaryConverter.toU32(bytesArray, urlLength, offset);
|
|
177
176
|
offset += 4;
|
|
178
|
-
|
|
179
|
-
bytes.set(byteReprArray, offset);
|
|
177
|
+
BinaryConverter.toU32(bytesArray, this._fileSize, offset);
|
|
180
178
|
offset += 4;
|
|
181
|
-
|
|
182
|
-
bytes.set(byteReprArray, offset);
|
|
179
|
+
BinaryConverter.toU32(bytesArray, this._chunkSize, offset);
|
|
183
180
|
offset += 4;
|
|
184
|
-
|
|
185
|
-
bytes.set(byteReprArray, offset);
|
|
181
|
+
BinaryConverter.toU32(bytesArray, this._chunkCount, offset);
|
|
186
182
|
offset += 4;
|
|
187
|
-
|
|
188
|
-
bytes.set(byteReprArray, offset);
|
|
183
|
+
BinaryConverter.toU32(bytesArray, this._loadedChunks, offset);
|
|
189
184
|
offset += 4;
|
|
190
|
-
|
|
191
|
-
await this._metaFile.write(buffer, 0);
|
|
185
|
+
bytesArray.set(urlBytes, offset);
|
|
186
|
+
await this._metaFile.write(bytesArray.buffer, 0);
|
|
192
187
|
}
|
|
193
188
|
async readMetadata() {
|
|
194
189
|
const metadataSize = 20;
|
|
195
190
|
const metadataLength = PartialFileSignature.byteLength + metadataSize;
|
|
196
|
-
const
|
|
197
|
-
const byteView = new Uint8Array(bufferView.buffer);
|
|
191
|
+
const bytesArray = await this._metaFile.read(0, metadataLength);
|
|
198
192
|
let offset = PartialFileSignature.byteLength;
|
|
199
|
-
const urlLength = BinaryConverter.
|
|
193
|
+
const urlLength = BinaryConverter.fromU32(bytesArray, offset);
|
|
200
194
|
offset += 4;
|
|
201
|
-
this._fileSize = BinaryConverter.
|
|
195
|
+
this._fileSize = BinaryConverter.fromU32(bytesArray, offset);
|
|
202
196
|
offset += 4;
|
|
203
|
-
this._chunkSize = BinaryConverter.
|
|
197
|
+
this._chunkSize = BinaryConverter.fromU32(bytesArray, offset);
|
|
204
198
|
offset += 4;
|
|
205
|
-
this._chunkCount = BinaryConverter.
|
|
199
|
+
this._chunkCount = BinaryConverter.fromU32(bytesArray, offset);
|
|
206
200
|
offset += 4;
|
|
207
|
-
this._loadedChunks = BinaryConverter.
|
|
201
|
+
this._loadedChunks = BinaryConverter.fromU32(bytesArray, offset);
|
|
208
202
|
offset += 4;
|
|
209
203
|
const urlBytes = await this._metaFile.read(offset, urlLength);
|
|
210
204
|
const decoder = new TextDecoder();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PartialFile.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/PartialFile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PartialFile.js","sourceRoot":"","sources":["../../../../src/wasm/file-system/PartialFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { IFile } from "./File.js";
|
|
2
|
+
import { FileInfo, IFileSystem } from "./IFileSystem.js";
|
|
3
|
+
export declare class RemoteFile implements IFile {
|
|
4
|
+
private _signature;
|
|
5
|
+
readonly id: string;
|
|
6
|
+
private _metaFile;
|
|
7
|
+
private _url;
|
|
8
|
+
private _fileSize;
|
|
9
|
+
private constructor();
|
|
10
|
+
static fromUrl(fs: IFileSystem, id: string, url: string, fileSize: number, signature?: Uint8Array | null): Promise<RemoteFile>;
|
|
11
|
+
static fromFile(file: IFile): Promise<RemoteFile>;
|
|
12
|
+
getFileSignature(): Promise<Uint8Array>;
|
|
13
|
+
write(): Promise<void>;
|
|
14
|
+
read(position: number, size: number): Promise<Uint8Array>;
|
|
15
|
+
copyTo(file: IFile): Promise<void>;
|
|
16
|
+
openSyncFileAccess(): Promise<void>;
|
|
17
|
+
closeSyncFileAccess(): Promise<void>;
|
|
18
|
+
getFileInfo(): FileInfo;
|
|
19
|
+
isValid(): Promise<boolean>;
|
|
20
|
+
remove(): Promise<void>;
|
|
21
|
+
close(): Promise<void>;
|
|
22
|
+
private storeMetadata;
|
|
23
|
+
private readMetadata;
|
|
24
|
+
}
|