[Release] wrt-installer_0.1.53
[framework/web/wrt-installer.git] / src / jobs / widget_install / job_widget_install.h
index 6066c26..549c80d 100644 (file)
 #include <dpl/wrt-dao-ro/config_parser_data.h>
 #include "widget_installer_struct.h"
 
+using namespace Jobs::Exceptions;
+
 namespace Jobs {
 namespace WidgetInstall {
+enum class ConfigureResult
+{
+    Ok,
+    Deferred,
+    Updated,
+    Failed,
+    Failed_InvalidConfig,
+    Failed_LowerVersion,
+    Failed_AlreadyInstalled,
+    Failed_WidgetRunning,
+    Failed_DrmError,
+};
+
 class JobWidgetInstall :
     public Job,
     public JobProgressBase<InstallerContext::InstallStep,
@@ -45,47 +60,41 @@ class JobWidgetInstall :
     InstallerContext m_installerContext;
 
     //TODO move it to base class of all jobs -> make it base template class??
-    Exceptions::Type m_exceptionCaught;
+    Jobs::Exceptions::Type m_exceptionCaught;
     std::string m_exceptionMessage;
     WidgetUpdateInfo m_widgetUpdateInfo;
-    bool    m_needEncryption;
-    bool    m_isDRM;
-
-    enum class ConfigureResult
-    {
-        Ok, Failed, Deferred, Updated
-    };
+    bool m_needEncryption;
+    bool m_isDRM;
 
     ConfigureResult ConfigureInstallation(const std::string &widgetSource,
                                           const WrtDB::ConfigParserData
                                           &configData,
                                           const std::string &tempPath);
     static WrtDB::ConfigParserData getWidgetDataFromXML(
-            const std::string &widgetSource,
-            const std::string &tempPath,
-            WrtDB::PackagingType pkgType,
-            bool isDRM);
+        const std::string &widgetSource,
+        const std::string &tempPath,
+        WrtDB::PackagingType pkgType,
+        bool isDRM,
+        bool isReinstall);
     static WidgetUpdateInfo detectWidgetUpdate(
-            const WrtDB::ConfigParserData &configInfo,
-            const WrtDB::WidgetType appType,
-            const WrtDB::WidgetPkgName &tizenId);
-    WidgetUpdateMode::Type CalcWidgetUpdatePolicy(
-            const OptionalWidgetVersion &existingVersion,
-            const OptionalWidgetVersion &incomingVersion) const;
+        const WrtDB::ConfigParserData &configInfo,
+        const WrtDB::TizenAppId &tizenId);
     void setTizenId(const WrtDB::ConfigParserData &configInfo);
     void displayWidgetInfo();
     void configureWidgetLocation(const std::string & widgetPath,
                                  const std::string &tempPath);
 
     WrtDB::PackagingType checkPackageType(
-            const std::string &widgetSource,
-            const std::string &tempPath);
+        const std::string &widgetSource,
+        const std::string &tempPath);
     bool detectResourceEncryption(const WrtDB::ConfigParserData &configData);
     void setInstallLocationType(const WrtDB::ConfigParserData
-            &configData);
+                                &configData);
     bool isDRMWidget(std::string widgetPath);
     bool DecryptDRMWidget(std::string widgetPath, std::string destPath);
     ConfigureResult PrePareInstallation(const std::string &widgetPath);
+    bool validateTizenApplicationID(const WrtDB::TizenAppId &tizenAppId);
+    bool validateTizenPackageID(const WrtDB::TizenPkgId &tizenPkgId);
     ConfigureResult checkWidgetUpdate(const WidgetUpdateInfo &update);
     void setApplicationType(const WrtDB::ConfigParserData &configInfo);
 
@@ -94,12 +103,13 @@ class JobWidgetInstall :
      * @brief Automaticaly sets installation process
      */
     JobWidgetInstall(std::string const & widgetPath,
-            const WidgetInstallationStruct &installerStruct);
+                     const WidgetInstallationStruct &installerStruct);
 
     //overrides
     void SendProgress();
     void SendFinishedSuccess();
     void SendFinishedFailure();
+    void SendProgressIconPath(const std::string &path);
     void SaveExceptionData(const Jobs::JobExceptionBase&);
 };
 } //namespace WidgetInstall