tizen 2.4 release
[framework/web/wrt-commons.git] / modules / widget_dao / dao / widget_dao.cpp
similarity index 93%
rename from modules_wearable/widget_dao/dao/widget_dao.cpp
rename to modules/widget_dao/dao/widget_dao.cpp
index f70782a..c61346a 100755 (executable)
@@ -29,7 +29,7 @@
 #include <dpl/wrt-dao-rw/widget_dao.h>
 
 #include <sstream>
-#include <dpl/log/log.h>
+#include <dpl/log/wrt_log.h>
 #include <dpl/foreach.h>
 #include <dpl/wrt-dao-ro/webruntime_database.h>
 #include <dpl/wrt-dao-rw/property_dao.h>
@@ -45,7 +45,7 @@ namespace WrtDB {
 
 #define SQL_CONNECTION_EXCEPTION_HANDLER_END(message)   \
     Catch(DPL::DB::SqlConnection::Exception::Base) {       \
-        LogError(message);                              \
+        WrtLogE(message);                              \
         ReThrowMsg(WidgetDAO::Exception::DatabaseError, \
                    message);                            \
     }
@@ -92,7 +92,7 @@ void WidgetDAO::registerWidget(
     const WidgetRegisterInfo &widgetRegInfo,
     const IWidgetSecurity &widgetSecurity)
 {
-    LogDebug("Registering widget");
+    WrtLogD("Registering widget");
     SQL_CONNECTION_EXCEPTION_HANDLER_BEGIN
     {
         DPL::DB::ORM::wrt::ScopedTransaction transaction(
@@ -108,13 +108,13 @@ void WidgetDAO::registerService(
     const WidgetRegisterInfo &widgetRegInfo,
     const IWidgetSecurity &widgetSecurity)
 {
-    LogDebug("Registering service");
+    WrtLogD("Registering service");
     SQL_CONNECTION_EXCEPTION_HANDLER_BEGIN
     {
         DPL::DB::ORM::wrt::ScopedTransaction transaction(
             &WrtDatabase::interface());
 
-        registerServiceInternal(serviceAppInfo, widgetRegInfo, widgetSecurity);
+    registerServiceInternal(serviceAppInfo, widgetRegInfo, widgetSecurity);
         transaction.Commit();
     }
     SQL_CONNECTION_EXCEPTION_HANDLER_END("Failed to register service")
@@ -166,7 +166,7 @@ void WidgetDAO::registerWidgetInternal(
     const TizenAppId & tzAppId,
     const WidgetRegisterInfo &widgetRegInfo,
     const IWidgetSecurity &widgetSecurity,
-    const DPL::Optional<DbWidgetHandle> handle)
+    const boost::optional<DbWidgetHandle> handle)
 {
     //Register into WidgetInfo has to be first
     //as all other tables depend upon that
@@ -217,6 +217,9 @@ void WidgetDAO::registerWidgetInternal(
     registerEncryptedResouceInfo(widgetHandle, widgetRegInfo.encryptedFiles);
 
     registerExternalLocations(widgetHandle, widgetRegInfo.externalLocations);
+#if USE(WEB_PROVIDER)
+    registerLiveBoxInfo(widgetHandle, widgetRegInfo);
+#endif
 }
 
 #define DO_INSERT(row, table)                              \
@@ -228,7 +231,8 @@ void WidgetDAO::registerWidgetInternal(
 
 void WidgetDAO::registerWidgetExtendedInfo(DbWidgetHandle widgetHandle,
         time_t installedTime,
-        const DPL::OptionalString & splashImgSrc, const DPL::OptionalString & backgroundPage,
+        const DPL::OptionalString & splashImgSrc,
+        const DPL::OptionalString & backgroundPage,
         const DPL::OptionalString & widgetInstalledPath)
 {
     //Try and transaction not needed
@@ -252,8 +256,8 @@ DbWidgetHandle WidgetDAO::registerWidgetInfo(
     AppType appType,
     PkgType pkgType,
     const ConfigParserData &widgetConfigurationInfo,
-    const IWidgetSecurity &widgetSecurity,
-    const DPL::Optional<DbWidgetHandle> handle)
+    const IWidgetSecurity & /*widgetSecurity*/,
+    const boost::optional<DbWidgetHandle> handle)
 {
     using namespace DPL::DB::ORM;
     using namespace DPL::DB::ORM::wrt;
@@ -276,8 +280,6 @@ DbWidgetHandle WidgetDAO::registerWidgetInfo(
     row.Set_author_href(widgetConfigurationInfo.authorHref);
     row.Set_csp_policy(widgetConfigurationInfo.cspPolicy);
     row.Set_csp_policy_report_only(widgetConfigurationInfo.cspPolicyReportOnly);
-    row.Set_base_folder(DPL::FromUTF8String(baseFolder));
-    row.Set_webkit_plugins_required(widgetConfigurationInfo.flashNeeded);
     row.Set_tizen_appid(tzAppId);
     row.Set_tizen_pkgid(tzPkgId);
     {
@@ -288,7 +290,6 @@ DbWidgetHandle WidgetDAO::registerWidgetInfo(
         }
     }
     row.Set_back_supported(widgetConfigurationInfo.backSupported);
-    row.Set_access_network(widgetConfigurationInfo.accessNetwork);
     row.Set_pkg_type(pkgType);
     row.Set_security_model_version(
         static_cast<int>(widgetConfigurationInfo.securityModelVersion));
@@ -568,8 +569,7 @@ void WidgetDAO::insertAppControlInfo(DbWidgetHandle handle,
                                              DPL::String operation,
                                              DPL::String uri,
                                              DPL::String mime,
-                                             unsigned index,
-                                             unsigned disposition)
+                                             bool reload)
 {
     using namespace DPL::DB::ORM;
     using namespace DPL::DB::ORM::wrt;
@@ -577,12 +577,12 @@ void WidgetDAO::insertAppControlInfo(DbWidgetHandle handle,
     AppControlInfo::Row row;
 
     row.Set_app_id(handle);
-    row.Set_execute_index(index);
     row.Set_src(src);
     row.Set_operation(operation);
     row.Set_uri(uri);
     row.Set_mime(mime);
-    row.Set_disposition(disposition);
+    // reuse execute_index field to store reset value to remove db migration task.
+    row.Set_execute_index(reload);
 
     DO_INSERT(row, AppControlInfo);
 }
@@ -598,9 +598,12 @@ void WidgetDAO::registerAppControl(DbWidgetHandle widgetHandle,
     {
         DPL::String src = appControl_it->m_src;
         DPL::String operation = appControl_it->m_operation;
-        unsigned index = appControl_it->m_index;
-        unsigned disposition =
-            static_cast<unsigned>(appControl_it->m_disposition);
+        bool reload = true;
+        if (appControl_it->m_reload == L"false") {
+            reload = false;
+        } else if (appControl_it->m_reload == L"true") {
+            reload = true;
+        }
 
         if (!appControl_it->m_uriList.empty())
         {
@@ -614,14 +617,14 @@ void WidgetDAO::registerAppControl(DbWidgetHandle widgetHandle,
                     {
                         DPL::String mime = *mime_it;
 
-                        insertAppControlInfo(widgetHandle, src, operation, uri, mime, index, disposition);
+                        insertAppControlInfo(widgetHandle, src, operation, uri, mime, reload);
                     }
                 }
                 else
                 {
                     DPL::String mime = L"";
 
-                    insertAppControlInfo(widgetHandle, src, operation, uri, mime, index, disposition);
+                    insertAppControlInfo(widgetHandle, src, operation, uri, mime, reload);
                 }
             }
         }
@@ -635,14 +638,14 @@ void WidgetDAO::registerAppControl(DbWidgetHandle widgetHandle,
                 {
                     DPL::String mime = *mime_it;
 
-                    insertAppControlInfo(widgetHandle, src, operation, uri, mime, index, disposition);
+                    insertAppControlInfo(widgetHandle, src, operation, uri, mime, reload);
                 }
             }
             else
             {
                 DPL::String mime = L"";
 
-                insertAppControlInfo(widgetHandle, src, operation, uri, mime, index, disposition);
+                insertAppControlInfo(widgetHandle, src, operation, uri, mime, reload);
             }
         }
     }
@@ -742,7 +745,7 @@ void WidgetDAO::registerExternalLocations(
         using namespace DPL::DB::ORM::wrt;
         DPL::DB::ORM::wrt::ScopedTransaction transaction(
             &WrtDatabase::interface());
-        LogDebug("Inserting external files for widgetHandle: " << widgetHandle);
+        WrtLogD("Inserting external files for widgetHandle: %i", widgetHandle);
         FOREACH(it, externals)
         {
             WidgetExternalLocations::Row row;
@@ -755,20 +758,42 @@ void WidgetDAO::registerExternalLocations(
     }
     SQL_CONNECTION_EXCEPTION_HANDLER_END("Failed to register external files");
 }
+#if USE(WEB_PROVIDER)
+void WidgetDAO::registerLiveBoxInfo(DbWidgetHandle widgetHandle,
+                                             const WidgetRegisterInfo &regInfo)
+{
+    using namespace DPL::DB::ORM;
+    using namespace DPL::DB::ORM::wrt;
+
+    ConfigParserData::LiveboxList liveBoxList = regInfo.configInfo.m_livebox;
+
+    FOREACH(it, liveBoxList)
+    {
+        LiveBoxInfo::Row row;
+        row.Set_app_id(widgetHandle);
+        row.Set_livebox_id((**it).m_liveboxId);
 
+        DO_INSERT(row, LiveBoxInfo)
+    }
+}
+#endif
 void WidgetDAO::unregisterAllExternalLocations()
 {
+    SQL_CONNECTION_EXCEPTION_HANDLER_BEGIN
+    {
     using namespace DPL::DB::ORM;
     using namespace DPL::DB::ORM::wrt;
-    LogDebug("Deleting external files for widgetHandle: " << m_widgetHandle);
+        WrtLogD("Deleting external files for widgetHandle: %i", m_widgetHandle);
     WRT_DB_DELETE(del, WidgetExternalLocations, &WrtDatabase::interface());
     del->Where(Equals<WidgetExternalLocations::app_id>(m_widgetHandle));
     del->Execute();
 }
+    SQL_CONNECTION_EXCEPTION_HANDLER_END("Failed to unregister external locations")
+}
 
 void WidgetDAO::unregisterWidget(const TizenAppId & tzAppId)
 {
-    LogDebug("Unregistering widget from DB. tzAppId: " << tzAppId);
+    WrtLogD("Unregistering widget from DB. tzAppId: %ls", tzAppId.c_str());
     SQL_CONNECTION_EXCEPTION_HANDLER_BEGIN
     {
         DPL::DB::ORM::wrt::ScopedTransaction transaction(