[Release] wrt-installer_0.1.23
[framework/web/wrt-installer.git] / src / jobs / widget_install / job_widget_install.h
index b323cc3..004a476 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,17 +60,12 @@ 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
-    };
-
     ConfigureResult ConfigureInstallation(const std::string &widgetSource,
                                           const WrtDB::ConfigParserData
                                           &configData,
@@ -67,11 +77,10 @@ class JobWidgetInstall :
         bool isDRM);
     static WidgetUpdateInfo detectWidgetUpdate(
         const WrtDB::ConfigParserData &configInfo,
-        const WrtDB::WidgetType appType,
         const WrtDB::TizenAppId &tizenId);
-    WidgetUpdateMode::Type CalcWidgetUpdatePolicy(
+    bool isUpperVersion(
         const OptionalWidgetVersion &existingVersion,
-        const OptionalWidgetVersion &incomingVersion) const;
+        const OptionalWidgetVersion &incomingVersion);
     void setTizenId(const WrtDB::ConfigParserData &configInfo);
     void displayWidgetInfo();
     void configureWidgetLocation(const std::string & widgetPath,
@@ -86,6 +95,8 @@ class JobWidgetInstall :
     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);