????
Current Path : C:/inetpub/vhost/bcvt.kontum.gov.vn/www/arcgis-js-api/core/workers/ |
Current File : C:/inetpub/vhost/bcvt.kontum.gov.vn/www/arcgis-js-api/core/workers/workerFactory.js |
// COPYRIGHT © 2019 Esri // // All rights reserved under the copyright laws of the United States // and applicable international laws, treaties, and conventions. // // This material is licensed for use under the Esri Master License // Agreement (MLA), and is bound by the terms of that agreement. // You may redistribute and use this code without modification, // provided you adhere to the terms of the MLA and include this // copyright notice. // // See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english // // For additional information, contact: // Environmental Systems Research Institute, Inc. // Attn: Contracts and Legal Services Department // 380 New York Street // Redlands, California, USA 92373 // USA // // email: contracts@esri.com // // See http://js.arcgis.com/4.14/esri/copyright.txt for details. define(["require","exports","../tsSupport/assignHelper","../tsSupport/generatorHelper","../tsSupport/awaiterHelper","dojo/_base/kernel","../../config","../has","../Logger","../promiseUtils","./loaderConfig","./utils","./WorkerFallback"],function(e,r,t,a,o,s,n,i,f,d,u,g,c){function l(){return o(this,void 0,void 0,function(){var e;return a(this,function(r){if(!i("esri-workers"))return[2,v(new c)];if(m)try{e=new Worker(m)}catch(r){b.warn(j,event),e=new c}else b.warn(j,event),e=new c;return[2,v(e)]})})}function v(e){return o(this,void 0,void 0,function(){return a(this,function(r){return[2,d.create(function(r){function t(o){var s=g.receiveMessage(o);if(s)switch(s.type){case w:p(e);break;case E:e.removeEventListener("message",t),e.removeEventListener("error",a),r(e)}}function a(r){r.preventDefault(),e.removeEventListener("message",t),e.removeEventListener("error",a),b.warn("Failed to create Worker. Fallback to execute module in main thread",r),e=new c,e.addEventListener("message",t),e.addEventListener("error",a)}e.addEventListener("message",t),e.addEventListener("error",a)})]})})}function p(e){var r,a=n.workers.loaderUrl||u.DEFAULT_LOADER_URL;if(null!=n.default){var o=t({},n);delete o.default,r=JSON.parse(JSON.stringify(o))}else r=JSON.parse(JSON.stringify(n));var f=n.workers.loaderConfig,d=u.default({baseUrl:f.baseUrl,locale:s.locale,has:t({"config-deferredInstrumentation":0,"csp-restrictions":i("csp-restrictions"),"dojo-test-sniff":0,"esri-native-promise":i("esri-native-promise"),"esri-secure-context":i("esri-secure-context"),"esri-workers-arraybuffer-transfer":i("esri-workers-arraybuffer-transfer"),"events-keypress-typed":0,"host-webworker":1,"esri-webgl-texture-float":i("esri-webgl-texture-float"),"esri-shared-array-buffer":i("esri-shared-array-buffer"),"esri-atomics":i("esri-atomics"),"esri-2d-debug":i("esri-2d-debug"),"esri-webgl-max-texture-size":i("esri-webgl-max-texture-size")},f.has),map:t({},f.map),paths:t({},f.paths),packages:f.packages||[]});e.postMessage({type:y,configure:{esriConfig:r,loaderUrl:a,loaderConfig:d}})}Object.defineProperty(r,"__esModule",{value:!0});var b=f.getLogger("esri.core.workers");i.add("esri-workers-arraybuffer-transfer",!i("safari")||i("safari")>=12);var m,E=g.MessageType.CONFIGURED,y=g.MessageType.CONFIGURE,w=g.MessageType.HANDSHAKE;try{m=URL.createObjectURL(new Blob(['var globalId=0;var outgoing=new Map;var configured=false;var HANDSHAKE=0;var CONFIGURE=1;var CONFIGURED=2;var OPEN=3;var OPENED=4;var RESPONSE=5;var INVOKE=6;var ABORT=7;function mapDelete(map,key){map["delete"](key)}function createAbortError(){var error=new Error("AbortError");error.dojoType="cancel";return error}function receiveMessage(event){if(!event||!event.data){return null}if(typeof event.data==="string"){return JSON.parse(event.data)}return event.data}function invokeStaticMessage(methodName,data,options){var signal=options&&options.signal;var Deferred=require("dojo/Deferred");var jobId=globalId++;var abort=function(){var outJob=outgoing.get(jobId);if(!outJob){return}mapDelete(outgoing,jobId);self.postMessage({type:ABORT,jobId:jobId});outJob.reject(createAbortError())};var deferred=new Deferred(abort);if(signal){if(signal.aborted){return deferred.reject(createAbortError())}signal.addEventListener("abort",function(){abort();deferred.reject(createAbortError())})}outgoing.set(jobId,deferred);self.postMessage({type:INVOKE,jobId:jobId,methodName:methodName,abortable:true,data:data});return deferred.promise}function messageHandler(event){var message=receiveMessage(event);if(!message){return}var jobId=message.jobId;switch(message.type){case CONFIGURE:var configuration=message.configure;if(configured){return}self.dojoConfig=configuration.loaderConfig;self.importScripts(configuration.loaderUrl);if(typeof require.config==="function"){require.config(configuration.loaderConfig)}require(["esri/config"],function(esriConfig){for(var name in configuration.esriConfig){if(Object.prototype.hasOwnProperty.call(configuration.esriConfig,name)){esriConfig[name]=configuration.esriConfig[name]}}self.postMessage({type:CONFIGURED})});break;case OPEN:var modulePath=message.modulePath;require(["esri/core/workers/RemoteClient",modulePath],function(RemoteClient,Module){var port=RemoteClient.connect(Module);self.postMessage({type:OPENED,jobId:jobId,data:port},[port])});break;case RESPONSE:if(outgoing.has(jobId)){var deferred=outgoing.get(jobId);mapDelete(outgoing,jobId);if(message.error){deferred.reject(JSON.parse(message.error))}else{deferred.resolve(message.data)}}break}}self.addEventListener("message",messageHandler);self.postMessage({type:HANDSHAKE});'],{type:"text/javascript"}))}catch(e){}var j="Failed to create Worker. Fallback to execute module in main thread";r.createWorker=l});