From: Duyoung Jang Date: Wed, 20 Mar 2013 04:02:10 +0000 (+0900) Subject: GetPackageInfoFromFileN() API is updated. X-Git-Tag: accepted/tizen_2.1/20130425.034849~253^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=02d25502b777f300076ff975042de6b167f0cf66;p=framework%2Fosp%2Fappfw.git GetPackageInfoFromFileN() API is updated. Change-Id: I95dd2f5e838bc5428b86b7a0284e9b738f5479df Signed-off-by: Duyoung Jang --- diff --git a/src/app/package/FAppPkg_PackageManagerImpl.cpp b/src/app/package/FAppPkg_PackageManagerImpl.cpp index b7eb50a..ec6b152 100755 --- a/src/app/package/FAppPkg_PackageManagerImpl.cpp +++ b/src/app/package/FAppPkg_PackageManagerImpl.cpp @@ -26,17 +26,18 @@ #include #include -#include +#include + #include #include #include #include #include #include +#include #include #include - -#include +#include #include #include "FAppPkg_PackageManagerImpl.h" @@ -719,27 +720,52 @@ _PackageManagerImpl::GetPackageInfoFromFileN(const String& filePath) const std::unique_ptr pExtension(_StringConverter::CopyToCharArrayN(extension)); SysTryReturn(NID_APP, pExtension, null, E_OUT_OF_MEMORY, "pExtension is null."); - bool res = false; + std::unique_ptr< PackageInfo > pPackageInfo(new (std::nothrow) PackageInfo); + SysTryReturn(NID_APP, pPackageInfo, null, E_OUT_OF_MEMORY, "pPackageInfo instance must not be null."); - if ((strcasecmp(pExtension.get(), "tpk") == 0) || (strcasecmp(pExtension.get(), "wgt") == 0)) + SysLog(NID_APP, "packagePath = [%s], extension = [%s]", pPackagePath.get(), pExtension.get()); + + bool res = true; + + if (strcasecmp(pExtension.get(), "tpk") == 0) { - SysLog(NID_APP, "packagePath = [%s], extension = [%s]", pPackagePath.get(), pExtension.get()); - res = true; + _PackageParser packageParser; + + res = packageParser.Construct(pPackageInfo.get()); + SysTryReturn(NID_APP, res, null, E_PARSING_FAILED, "Construct() is failed. [%s]", pPackagePath.get()); + + res = packageParser.Parse(filePath); + SysTryReturn(NID_APP, res, null, E_PARSING_FAILED, "Parse() is failed. [%s]", pPackagePath.get()); } - SysTryReturn(NID_APP, res == true, null, E_UNSUPPORTED_FORMAT, "invalid extension! - packagePath = [%s], extension = [%s]", pPackagePath.get(), pExtension.get()); + else if (strcasecmp(pExtension.get(), "wgt") == 0) + { + pkgmgr_info* pPkgmgrInfo = null; - _PackageParser packageParser; + pPkgmgrInfo = pkgmgr_client_check_pkginfo_from_file(pPackagePath.get()); + SysTryReturn(NID_APP, pPkgmgrInfo, null, E_PARSING_FAILED, "pkgmgr_client_check_pkginfo_from_file(%s) is failed.", pPackagePath.get()); - PackageInfo* pPackageInfo = new (std::nothrow) PackageInfo; - SysTryReturn(NID_APP, pPackageInfo, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] pPackageInfo instance must not be null."); + _package_manager_pkg_detail_info_t* pPkgInfo = (_package_manager_pkg_detail_info_t*) pPkgmgrInfo; + _PackageInfoImpl* pPackageInfoImpl = _PackageInfoImpl::GetInstance(pPackageInfo.get()); - res = packageParser.Construct(pPackageInfo); - SysTryReturn(NID_APP, res, null, E_PARSING_FAILED, "Construct() is failed. [%s]", pPackagePath.get()); + SysLog(NID_APP, "id(%s), version(%s), label(%s), description(%s), author(%s)", pPkgInfo->pkgid, pPkgInfo->version, pPkgInfo->label, pPkgInfo->pkg_description, pPkgInfo->author); - res = packageParser.Parse(filePath); - SysTryReturn(NID_APP, res, null, E_PARSING_FAILED, "Parse() is failed. [%s]", pPackagePath.get()); + pPackageInfoImpl->SetType(PACKAGE_TYPE_WGT); + pPackageInfoImpl->SetId(pPkgInfo->pkgid); + pPackageInfoImpl->SetVersion(pPkgInfo->version); + pPackageInfoImpl->SetDisplayName(pPkgInfo->label); + pPackageInfoImpl->SetDescription(pPkgInfo->pkg_description); + pPackageInfoImpl->SetAuthor(pPkgInfo->author); + // icon + // privilege - return pPackageInfo; + pkgmgr_client_free_pkginfo(pPkgmgrInfo); + } + else + { + SysTryReturn(NID_APP, false, null, E_UNSUPPORTED_FORMAT, "invalid extension! - packagePath = [%s], extension = [%s]", pPackagePath.get(), pExtension.get()); + } + + return pPackageInfo.release(); } IList*