From e6fd44c48040ed9ecce45c96d7592c99147f3b0b Mon Sep 17 00:00:00 2001 From: leerang song Date: Mon, 29 Apr 2013 19:54:05 +0900 Subject: [PATCH] Set the API to check the supported boxsize. [Issue#] N/A [Problem] Config.xml use the not supported boxsize [Cause] N/A [Solution] Set the API to check the supported boxsize. [SCMRequest] N/A Change-Id: I7d39b257c1822f5296922342385c2629efe3e625 --- src/jobs/widget_install/task_widget_config.cpp | 48 ++++++++++++++++++++++++++ src/jobs/widget_install/task_widget_config.h | 1 + 2 files changed, 49 insertions(+) mode change 100644 => 100755 src/jobs/widget_install/task_widget_config.cpp mode change 100644 => 100755 src/jobs/widget_install/task_widget_config.h diff --git a/src/jobs/widget_install/task_widget_config.cpp b/src/jobs/widget_install/task_widget_config.cpp old mode 100644 new mode 100755 index c5bbc5b..2620edd --- a/src/jobs/widget_install/task_widget_config.cpp +++ b/src/jobs/widget_install/task_widget_config.cpp @@ -45,6 +45,9 @@ #include #include #include +#include +#include +#include namespace { // anonymous const DPL::String BR = DPL::FromUTF8String("
"); @@ -80,6 +83,7 @@ TaskWidgetConfig::TaskWidgetConfig(InstallerContext& installContext) : AddStep(&TaskWidgetConfig::ProcessAppControlInfo); AddStep(&TaskWidgetConfig::ProcessSecurityModel); AddStep(&TaskWidgetConfig::StepVerifyFeatures); + AddStep(&TaskWidgetConfig::StepVerifyLivebox); AddStep(&TaskWidgetConfig::StepCheckMinVersionInfo); } @@ -511,6 +515,50 @@ void TaskWidgetConfig::StepVerifyFeatures() "Widget Config step2 Finished"); } +void TaskWidgetConfig::StepVerifyLivebox() +{ + using namespace WrtDB; + ConfigParserData &data = m_installContext.widgetConfig.configInfo; + ConfigParserData::LiveboxList liveBoxList = data.m_livebox; + + if (liveBoxList.size() <= 0) { + return; + } + + FOREACH (it, liveBoxList) { + std::string boxType; + + if ((**it).m_type.empty()) { + boxType = web_provider_livebox_get_default_type(); + } else { + boxType = DPL::ToUTF8String((**it).m_type); + } + + LogInfo("livebox type: " << boxType); + + boxSizeType boxSizeList = (**it).m_boxInfo.m_boxSize; + char** boxSize = static_cast( + malloc(sizeof(char*)* boxSizeList.size())); + + int boxSizeCnt = 0; + FOREACH (m, boxSizeList) { + boxSize[boxSizeCnt++] = strdup(DPL::ToUTF8String((*m).first).c_str()); + } + + bool chkSize = web_provider_plugin_check_supported_size( + boxType.c_str(), boxSize, boxSizeCnt); + + for(int i = 0; i < boxSizeCnt; i++) { + delete[] boxSize[i]; + } + + if(!chkSize) { + LogError("Invalid boxSize"); + ThrowMsg(Exceptions::WidgetConfigFileInvalid, "Invalid boxSize"); + } + } +} + bool TaskWidgetConfig::isFeatureAllowed(WrtDB::AppType appType, DPL::String featureName) { diff --git a/src/jobs/widget_install/task_widget_config.h b/src/jobs/widget_install/task_widget_config.h old mode 100644 new mode 100755 index 6b500d3..785d7fc --- a/src/jobs/widget_install/task_widget_config.h +++ b/src/jobs/widget_install/task_widget_config.h @@ -81,6 +81,7 @@ class TaskWidgetConfig : void ProcessAppControlInfo(); void ProcessSecurityModel(); void StepVerifyFeatures(); + void StepVerifyLivebox(); void StepCheckMinVersionInfo(); template -- 2.7.4