#include <dlog.h>
#include <unique_ptr.h>
-#include <FSysSystemTime.h>
+#include <package-manager-types.h>
+
#include <FAppPkgPackageManager.h>
#include <FAppPkgPackageAppInfo.h>
#include <FAppPkgPackageInfo.h>
#include <FAppPkgIPackageInstallationEventListener.h>
#include <FAppPkgIPackageInstallationResponseListener.h>
#include <FAppPkgIPackageUninstallationResponseListener.h>
+#include <FBaseSysLog.h>
#include <FIo.h>
#include <FIoRegistry.h>
-
-#include <FBaseSysLog.h>
+#include <FSysSystemTime.h>
#include <FBase_StringConverter.h>
#include "FAppPkg_PackageManagerImpl.h"
std::unique_ptr<char[]> 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*