Support setVirtualPath for thread-model wrt-service
authorDongHyun Song <dh81.song@samsung.com>
Wed, 7 Jul 2021 08:47:14 +0000 (17:47 +0900)
committerDongHyun Song <dh81.song@samsung.com>
Wed, 7 Jul 2021 08:50:55 +0000 (17:50 +0900)
thread-model wrt-service runs all service application on worker
thread as daemon process.

For the virtual path resolving, it cannot get service application's
path. i.e. /home/owner/apps_rw/{service_app_pkgid}/data, becuase
wrt-service is org.tizen.chromium-efl package.

Thus, setting virtual path will be set by wrt-service framework
before each node worker thread started.
 - node worker has own V8 context

Change-Id: I8dd5e524584ebe71416c86c1e8648a2c4cfc4b94
Signed-off-by: DongHyun Song <dh81.song@samsung.com>
src/filesystem/js/common.js
src/filesystem/js/file_system_manager.js

index 8ba8207..03691fe 100644 (file)
@@ -138,6 +138,12 @@ var commonFS_ = (function() {
         cacheReady = true;
     }
 
+    function setVirtualPath(name, path, type, state) {
+      initCache();
+      cacheVirtualToReal[name] = { path: path, label: name, type: type, state: state };
+      console.log('name : ' + name + ', setVirtualPath : ' + cacheVirtualToReal[name]);
+    }
+
     function mergeMultipleSlashes(str) {
         var retStr = str.replace(/(^(file\:\/\/\/)|^(file\:\/\/)|\/)\/{0,}/g, '$1');
         return retStr;
@@ -445,6 +451,7 @@ var commonFS_ = (function() {
         f_isCorrectRelativePath: f_isCorrectRelativePath,
         getStorage: getStorage,
         getAllStorages: getAllStorages,
-        mergeMultipleSlashes: mergeMultipleSlashes
+        mergeMultipleSlashes: mergeMultipleSlashes,
+        setVirtualPath : setVirtualPath
     };
 })();
index 9651bd1..36f74ac 100644 (file)
@@ -851,4 +851,8 @@ FileSystemManager.prototype.removeStorageStateChangeListener = function() {
     removeStorageStateChangeListener.apply(this, arguments);
 };
 
+FileSystemManager.prototype.setVirtualPath = function(name, path, type, state) {
+    commonFS_.setVirtualPath(name, path, type, state);
+};
+
 exports = new FileSystemManager();