External file removal fix
[framework/web/wrt-installer.git] / src / jobs / widget_install / job_widget_install.h
index 8822978..29ea4b2 100644 (file)
@@ -30,6 +30,7 @@
 #include <dpl/utils/widget_version.h>
 #include <widget_install/widget_install_context.h>
 #include <widget_install/widget_update_info.h>
+#include <dpl/wrt-dao-ro/config_parser_data.h>
 #include "widget_installer_struct.h"
 
 namespace Jobs {
@@ -41,26 +42,48 @@ class JobWidgetInstall :
     public JobContextBase<WidgetInstallationStruct>   //TODO typedef
 {
   private:
-    typedef DPL::Optional<WidgetHandle> OptionalWidgetHandle;
-
     InstallerContext m_installerContext;
 
-    //TODO move it to base class of all jobs
+    //TODO move it to base class of all jobs -> make it base template class??
     Exceptions::Type m_exceptionCaught;
     std::string m_exceptionMessage;
     WidgetUpdateInfo m_widgetUpdateInfo;
+    bool    m_needEncryption;
+    bool    m_isDRM;
 
     enum class ConfigureResult
     {
-        Ok, Failed, Deferred
+        Ok, Failed, Deferred, Updated
     };
 
-    ConfigureResult ConfigureInstallation(const std::string &widgetPath);
-    WidgetUpdateInfo detectWidgetUpdate(const std::string &widgetPath);
+    ConfigureResult ConfigureInstallation(const std::string &widgetSource,
+                                          const WrtDB::ConfigParserData
+                                          &configData,
+                                          const WidgetUpdateInfo &update,
+                                          const std::string &tempPath);
+    static WrtDB::ConfigParserData getWidgetDataFromXML(
+            const std::string &widgetSource,
+            const std::string &tempPath,
+            WrtDB::PackagingType pkgType,
+            bool isDRM);
+    static WidgetUpdateInfo detectWidgetUpdate(
+            const WrtDB::ConfigParserData &configInfo);
     WidgetUpdateMode::Type CalcWidgetUpdatePolicy(
             const OptionalWidgetVersion &existingVersion,
             const OptionalWidgetVersion &incomingVersion) const;
+    bool setTizenId(const WrtDB::ConfigParserData &configInfo,
+                    ConfigureResult result);
     void displayWidgetInfo();
+    void configureWidgetLocation(const std::string & widgetPath,
+                                 const std::string &tempPath);
+
+    WrtDB::PackagingType checkPackageType(
+            const std::string &widgetSource,
+            const std::string &tempPath);
+    bool detectResourceEncryption(const WrtDB::ConfigParserData &configData);
+    bool isDRMWidget(std::string widgetPath);
+    bool DecryptDRMWidget(std::string widgetPath, std::string destPath);
+    ConfigureResult PrePareInstallation(const std::string &widgetPath);
 
   public:
     /**
@@ -69,10 +92,6 @@ class JobWidgetInstall :
     JobWidgetInstall(std::string const & widgetPath,
             const WidgetInstallationStruct &installerStruct);
 
-    DPL::Optional<WidgetHandle> getNewWidgetHandle() const;
-    bool getUnzipStartedFlag() const;
-    bool getUnzipFinishedFlag() const;
-
     //overrides
     void SendProgress();
     void SendFinishedSuccess();