#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,
public JobContextBase<WidgetInstallationStruct> //TODO typedef
{
private:
- typedef DPL::Optional<WidgetHandle> OptionalWidgetHandle;
-
InstallerContext m_installerContext;
- //TODO move it to base class of all jobs
- Exceptions::Type m_exceptionCaught;
+ //TODO move it to base class of all jobs -> make it base template class??
+ Jobs::Exceptions::Type m_exceptionCaught;
std::string m_exceptionMessage;
WidgetUpdateInfo m_widgetUpdateInfo;
-
- enum class ConfigureResult
- {
- Ok, Failed, Deferred, Updated
- };
+ bool m_needEncryption;
+ bool m_isDRM;
ConfigureResult ConfigureInstallation(const std::string &widgetSource,
- bool fromBrowser,
- const WidgetUpdateInfo &update);
+ const WrtDB::ConfigParserData
+ &configData,
+ const std::string &tempPath);
static WrtDB::ConfigParserData getWidgetDataFromXML(
- const std::string &widgetSource,
- bool fromBrowser, WrtDB::PkgType isOspsvc);
+ const std::string &widgetSource,
+ const std::string &tempPath,
+ WrtDB::PackagingType pkgType,
+ bool isDRM,
+ bool isReinstall);
static WidgetUpdateInfo detectWidgetUpdate(
- const WrtDB::ConfigParserData &configInfo);
- WidgetUpdateMode::Type CalcWidgetUpdatePolicy(
- const OptionalWidgetVersion &existingVersion,
- const OptionalWidgetVersion &incomingVersion) const;
- bool setTizenId(const WrtDB::ConfigParserData &configInfo);
+ 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 &widgetSorce);
+ const std::string &widgetSource,
+ const std::string &tempPath);
bool detectResourceEncryption(const WrtDB::ConfigParserData &configData);
+ void setInstallLocationType(const WrtDB::ConfigParserData
+ &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);
public:
/**
* @brief Automaticaly sets installation process
*/
JobWidgetInstall(std::string const & widgetPath,
- const WidgetInstallationStruct &installerStruct);
-
- DPL::Optional<WidgetHandle> getNewWidgetHandle() const;
+ const WidgetInstallationStruct &installerStruct);
//overrides
void SendProgress();
void SendFinishedSuccess();
void SendFinishedFailure();
+ void SendProgressIconPath(const std::string &path);
void SaveExceptionData(const Jobs::JobExceptionBase&);
};
} //namespace WidgetInstall