Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | 15x 15x 15x 15x 59x 41x 41x 59x 295x 169x 169x 42x 42x 15x 90x 60x 60x 30x 15x 52x 2x 52x 47x 47x 47x 5x 15x | import { deviceId, scanditEngineLocation, userLicenseKey } from "../index";
import { BrowserHelper } from "./browserHelper";
import { EngineWorker, engineWorkerBlob } from "./workers/engineWorker";
export class EngineLoader {
private preloadedEngineWorker?: EngineWorker;
private preloadedEngineWorkerAvailable: boolean;
constructor(preload: boolean) {
if (preload) {
this.preloadedEngineWorker = new Worker(URL.createObjectURL(engineWorkerBlob));
EngineLoader.load(this.preloadedEngineWorker);
}
this.preloadedEngineWorkerAvailable = preload;
}
public static load(engineWorker: EngineWorker, preload: boolean = false, delayedRegistration: boolean = false): void {
engineWorker.postMessage({
type: "load-library",
deviceId,
libraryLocation: scanditEngineLocation,
path: self.location.pathname,
preload,
deviceModelName: BrowserHelper.userAgentInfo.getDevice().model,
});
engineWorker.addEventListener(
"message",
(event) => {
// istanbul ignore else
if (event.data[0] === "status" && event.data[1] === "ready") {
engineWorker.postMessage({
type: "create-context",
licenseKey: userLicenseKey,
delayedRegistration,
});
}
},
{ once: true }
);
}
public getEngineWorker(): EngineWorker {
if (this.preloadedEngineWorkerAvailable && this.preloadedEngineWorker != null) {
this.preloadedEngineWorkerAvailable = false;
return this.preloadedEngineWorker;
} else {
return new Worker(URL.createObjectURL(engineWorkerBlob));
}
}
public returnEngineWorker(engineWorker: EngineWorker): void {
if (this.preloadedEngineWorker == null) {
this.preloadedEngineWorker = engineWorker;
}
if (this.preloadedEngineWorker === engineWorker) {
this.preloadedEngineWorker.onmessage = null;
this.preloadedEngineWorker.postMessage({
type: "reset",
});
this.preloadedEngineWorkerAvailable = true;
} else {
engineWorker.terminate();
}
}
}
|