return pPackageManagerServer;
}
-PackageInfo*
-_PackageManagerServer::GetPackageInfoFromFileN(const String& filePath) const
-{
- SysTryReturn(NID_APP, filePath.IsEmpty() == false, null, E_INVALID_ARG, "filePath is empty.");
- SysTryReturn(NID_APP, File::IsFileExist(filePath) == true, null, E_FILE_NOT_FOUND, "package is not existed.");
-
- String extension = File::GetFileExtension(filePath);
- SysTryReturn(NID_APP, extension.IsEmpty() == false, null, E_INVALID_ARG, "extension is empty.");
-
- std::unique_ptr<char[]> pPackagePath(_StringConverter::CopyToCharArrayN(filePath));
- SysTryReturn(NID_APP, pPackagePath, null, E_OUT_OF_MEMORY, "pPackagePath is null.");
-
- std::unique_ptr<char[]> pExtension(_StringConverter::CopyToCharArrayN(extension));
- SysTryReturn(NID_APP, pExtension, null, E_OUT_OF_MEMORY, "pExtension is null.");
-
- std::unique_ptr< PackageInfo > pPackageInfo(new (std::nothrow) PackageInfo);
- SysTryReturn(NID_APP, pPackageInfo, null, E_OUT_OF_MEMORY, "pPackageInfo instance must not be null.");
-
- SysLog(NID_APP, "packagePath = [%s], extension = [%s]", pPackagePath.get(), pExtension.get());
-
- bool res = true;
- result r = E_SUCCESS;
-
- if (strcasecmp(pExtension.get(), "tpk") == 0)
- {
- _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());
- }
- else if (strcasecmp(pExtension.get(), "wgt") == 0)
- {
- pkgmgr_info* pPkgmgrInfo = null;
-
- 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());
-
- _package_manager_pkg_detail_info_t* pPkgInfo = (_package_manager_pkg_detail_info_t*) pPkgmgrInfo;
- _PackageInfoImpl* pPackageInfoImpl = _PackageInfoImpl::GetInstance(pPackageInfo.get());
-
- SysLog(NID_APP, "package(%s), version(%s), label(%s), description(%s), author(%s), icon_size(%d), pkgname(%s)", pPkgInfo->pkgid, pPkgInfo->version, pPkgInfo->label,
- pPkgInfo->pkg_description, pPkgInfo->author, pPkgInfo->icon_size, pPkgInfo->pkg_name);
-
- 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);
- pPackageInfoImpl->SetMainAppId(pPkgInfo->pkg_name);
-
- if (pPkgInfo->privilege_list)
- {
- GList* pList = null;
- pList = g_list_first(pPkgInfo->privilege_list);
- while (pList)
- {
- char* pPrivilege = (char*)pList->data;
- if (pPrivilege)
- {
- pPackageInfoImpl->AddPrivilege(*new (std::nothrow) String(pPrivilege));
- free(pPrivilege);
- }
- pList = g_list_next(pList);
- }
- g_list_free(pPkgInfo->privilege_list);
- }
-
- std::unique_ptr< PackageAppInfo > pPackageAppInfo(new (std::nothrow) PackageAppInfo);
- if (pPackageAppInfo)
- {
- _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pPackageAppInfo.get());
-
- pPackageAppInfoImpl->SetAppId(pPkgInfo->pkg_name);
- pPackageAppInfoImpl->SetAppName(pPkgInfo->label);
- pPackageAppInfoImpl->SetAppDisplayName(pPkgInfo->label);
- pPackageAppInfoImpl->SetMainApp(true);
- if ((pPkgInfo->icon_buf) && (pPkgInfo->icon_size > 0))
- {
- String iconPath("/tmp/icon.png");
- File file;
- r = file.Construct(iconPath, "w+");
- r = file.Write(pPkgInfo->icon_buf, pPkgInfo->icon_size);
-
- pPackageAppInfoImpl->SetAppTempIconPath(iconPath);
- }
-
- pPackageInfoImpl->AddPackageAppInfo(*pPackageAppInfo.release());
- }
- else
- {
- SysLog(NID_APP, "pPackageAppInfo instance must not be null.");
- pkgmgr_client_free_pkginfo(pPkgmgrInfo);
- return null;
- }
-
- 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();
-}
-
PackageType
_PackageManagerServer::GetType(const PackageId& packageId) const
{