pPackageInfoImpl->SetDisplayName(pPkgInfo->label);
pPackageInfoImpl->SetDescription(pPkgInfo->pkg_description);
pPackageInfoImpl->SetAuthor(pPkgInfo->author);
- // icon
- // privilege
+
+ 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);
+ SysTryReturn(NID_APP, pPackageAppInfo, null, E_OUT_OF_MEMORY, "pPackageAppInfo instance must not be null.");
+
+ _PackageAppInfoImpl* pPackageAppInfoImpl = _PackageAppInfoImpl::GetInstance(pPackageAppInfo.get());
+
+ pPackageAppInfoImpl->SetAppId(pPkgInfo->pkg_name);
+ pPackageAppInfoImpl->SetAppName(pPkgInfo->label);
+ pPackageAppInfoImpl->SetAppDisplayName(pPkgInfo->label);
+ pPackageAppInfoImpl->SetMainApp(true);
+ // icon - pPkgInfo->icon_buf
+
+ pPackageInfoImpl->AddPackageAppInfo(*pPackageAppInfo.release());
pkgmgr_client_free_pkginfo(pPkgmgrInfo);
}
_PackageManagerImpl::_PackageManagerImpl(void)
:__pRequestClient(null),
-__pListeningClient(null),
-__pDb(null)
+__pListeningClient(null)
{
- CreatePackageTables();
}
_PackageManagerImpl::~_PackageManagerImpl(void)
return pAppId;
}
-result
-_PackageManagerImpl::CreatePackageTables(void)
-{
- result r = E_SUCCESS;
- Database db;
- String createQuery;
-
- if (File::IsFileExist(PACKAGE_DATABASE_FILE_NAME) == true)
- {
- SysLog(NID_APP, ".app-package.db is already existed!");
- return r;
- }
-
- r = db.Construct(PACKAGE_DATABASE_FILE_NAME, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.Construct is failed. [%s]", GetErrorMessage(r));
-
- // PkgInfo
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS PkgInfo"
- "( UNIQUE_ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"
- "PKG_ID TEXT,"
- "PKG_SECRET TEXT,"
- "PKG_VERSION TEXT,"
- "PKG_TYPE TEXT,"
- "PKG_MIMETYPE TEXT,"
- "PKG_APIVERSION TEXT,"
- "PKG_NAME TEXT,"
- "PKG_VENDOR TEXT,"
- "PKG_DESCRIPTION TEXT,"
- "PKG_URL TEXT,"
- "PKG_CID TEXT,"
- "PKG_READONLY_SIZE INTEGER,"
- "PKG_DATA_SIZE INTEGER,"
- "PKG_PARENT_ID TEXT,"
- "PKG_ATTRIBUTE INTEGER,"
- "PKG_ROOTPATH TEXT,"
- "PKG_STORAGE_TYPE INTEGER,"
- "PKG_INSTALLATION_DATE TEXT,"
- "PKG_STATE INTEGER,"
- "PKG_INITIATOR INTEGER )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // PkgPrivileges
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS PkgPrivileges"
- "( ID INTEGER,"
- "PRIVILEGES TEXT,"
- "HMAC_PPRIVILEGES TEXT,"
- "CERTIFICATE_TYPE INTEGER,"
- "STR_PRIVILEGES TEXT )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // PkgIntegrity
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS PkgIntegrity"
- "( ID INTEGER,"
- "HMAC_APPID TEXT,"
- "HMAC_APPSECRET TEXT,"
- "HMAC_HTB TEXT,"
- "SLOT_NUM INTEGER )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // AppInfo
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS AppInfo"
- "( UNIQUE_ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"
- "ID INTEGER,"
- "APP_NAME TEXT,"
- "APP_TYPE TEXT,"
- "APP_DEFAULT TEXT,"
- "APP_MAINMENU_ICON TEXT,"
- "APP_SETTING_ICON TEXT,"
- "APP_TICKER_ICON TEXT,"
- "APP_QUICKPANEL_ICON TEXT,"
- "APP_LAUNCHIMAGE_ICON TEXT,"
- "APP_FEATURE INTEGER,"
- "PACKAGE_NAME TEXT )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // Notification
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS Notification"
- "( ID INTEGER,"
- "NAME TEXT,"
- "VALUE TEXT )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // AppFeature
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS AppFeature"
- "( ID INTEGER,"
- "NAME TEXT,"
- "VALUE TEXT )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // LaunchCondition
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS LaunchCondition"
- "( ID INTEGER,"
- "NAME TEXT,"
- "VALUE TEXT )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // DataControl
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS DataControl"
- "( ID INTEGER,"
- "PROVIDER_ID TEXT,"
- "TYPE TEXT,"
- "ACCESS TEXT )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // Capability
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS Capability"
- "( ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"
- "OPERATION_ID TEXT )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // ResolutionUriScheme
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS ResolutionUriScheme"
- "( ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"
- "URI_SCHEME TEXT )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // ResolutionMimeType
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS ResolutionMimeType"
- "( ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"
- "MIME_TYPE TEXT )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // AppControl
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS AppControl"
- "( ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,"
- "PROVIDER_ID TEXT,"
- "CATEGORY TEXT )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- // AppInfoLookup
- createQuery.Format(1024, L"CREATE TABLE IF NOT EXISTS AppInfoLookup"
- "( AppInfoID INTEGER,"
- "CapabilityID INTEGER,"
- "ResolutionUriSchemeID INTEGER,"
- "ResolutionMimeTypeID INTEGER,"
- "AppControlID INTEGER )");
- r = db.ExecuteSql(createQuery, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "MakePackageDb: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- createQuery.Clear();
-
- return r;
-}
-
-result
-_PackageManagerImpl::RegisterPackageInfo(_PackageInfoImpl& pkgInfoImpl)
-{
- result r = E_SUCCESS;
- Database db;
- DbStatement* pStmt = null;
- DbEnumerator* pEnum = null;
- String query;
- String privileges;
- String hmacPrivileges;
- PackageInfo packageInfo;
- int uniqueId = 0;
-
- SysLog(NID_APP, "_PackageManagerImpl::RegisterPackageInfo()");
-
- query.Format(
- 1024, L"INSERT INTO PkgInfo "
- "(PKG_ID, PKG_SECRET, PKG_VERSION, PKG_TYPE, PKG_MIMETYPE, PKG_APIVERSION, PKG_NAME, PKG_VENDOR, PKG_DESCRIPTION, PKG_URL, PKG_CID, PKG_READONLY_SIZE, PKG_DATA_SIZE, PKG_PARENT_ID,"
- " PKG_ATTRIBUTE, PKG_ROOTPATH, PKG_STORAGE_TYPE, PKG_INSTALLATION_DATE, PKG_STATE, PKG_INITIATOR) "
- "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
-
- r = db.Construct(PACKAGE_DATABASE_FILE_NAME, false);
- //SysTryCatch(NID_APP, r == E_SUCCESS, r, r, "[%s] An error occurs while opening a database.", GetErrorMessage(r));
-
- pStmt = CreateStatementN(db, query);
- //SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult()));
-
- PackageId packageId = pkgInfoImpl.GetAppId();
- String appVersion = pkgInfoImpl.GetAppVersion();
- String type = pkgInfoImpl.GetAppType();
- String appMimeType = pkgInfoImpl.GetAppMimeType();
- String appApiVersion = pkgInfoImpl.GetAppApiVersion();
- String appName = pkgInfoImpl.GetAppName();
- String appVendor = pkgInfoImpl.GetAppVendor();
- String appDescription = pkgInfoImpl.GetAppDescription();
- String appUrl = pkgInfoImpl.GetAppUrl();
- String appCid = pkgInfoImpl.GetAppCid();
-
- pkgInfoImpl.GetPrivilegesValue(privileges, hmacPrivileges);
- String appRootPath = pkgInfoImpl.GetAppRootPath();
- int appStorageType = pkgInfoImpl.GetAppStorageType();
- int certType = pkgInfoImpl.GetCertType();
- ArrayList* pAppInfoImplList = pkgInfoImpl.GetAppInfoList();
-
- DateTime time;
- r = SystemTime::GetCurrentTime(time);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "An error occurs while getting a current time.");
-
- if (!packageId.IsEmpty())
- {
- r = pStmt->BindString(0, packageId);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!appVersion.IsEmpty())
- {
- r = pStmt->BindString(2, appVersion);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!type.IsEmpty())
- {
- r = pStmt->BindString(3, type);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!appMimeType.IsEmpty())
- {
- r = pStmt->BindString(4, appMimeType);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!appApiVersion.IsEmpty())
- {
- r = pStmt->BindString(5, appApiVersion);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!appName.IsEmpty())
- {
- r = pStmt->BindString(6, appName);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!appVendor.IsEmpty())
- {
- r = pStmt->BindString(7, appVendor);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!appDescription.IsEmpty())
- {
- r = pStmt->BindString(8, appDescription);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!appUrl.IsEmpty())
- {
- r = pStmt->BindString(9, appUrl);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!appCid.IsEmpty())
- {
- r = pStmt->BindString(10, appCid);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!appRootPath.IsEmpty())
- {
- r = pStmt->BindString(15, appRootPath);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (appStorageType != 0)
- {
- r = pStmt->BindInt(16, appStorageType);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- r = pStmt->BindDateTime(17, time);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
-
- pEnum = ExecuteStatementN(db, pStmt);
-
- r = GetLastResult();
-
- uniqueId = pkgInfoImpl.GetUniqueId();
-
- SysLog(NID_APP, "_PackageManagerImpl::RegisterPackageInfo()-GetUniqueId(%d)", uniqueId);
-
- __pDb = &db;
-
- // AppInfo
- RegisterAppInfoList(uniqueId, pAppInfoImplList);
-
- // PkgPrivileges
- RegisterPrivileges(uniqueId, privileges, hmacPrivileges, certType);
-
-CATCH:
- __pDb = null;
- delete pEnum;
- delete pStmt;
- return r;
-}
-
-result
-_PackageManagerImpl::UnregisterPackageInfo(const PackageId& packageId)
-{
- SysLog(NID_APP, "packageId = [%ls]", packageId.GetPointer());
-
- result r = E_SUCCESS;
- Database db;
- String query;
- int id = 0;
- PackageInfo* pPkgInfo;
- _PackageInfoImpl* pPackageInfoImpl = null;
- ArrayList* pList = null;
-
- pPkgInfo = GetPackageInfoN(packageId);
- SysTryReturn(NID_APP, pPkgInfo != null, r, r, "UnregisterPackageInfo: GetUniqueId() is invalid. [%d]", id);
-
- pPackageInfoImpl = _PackageInfoImpl::GetInstance(pPkgInfo);
- pPackageInfoImpl->SetAppId(packageId);
- id = pPackageInfoImpl->GetUniqueId();
- SysTryReturn(NID_APP, id > 0, r, r, "UnregisterPackageInfo: GetUniqueId() is invalid. [%d]", id);
-
- r = db.Construct(PACKAGE_DATABASE_FILE_NAME, false);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "UnregisterPackageInfo: db.Construct is failed. [%s]", GetErrorMessage(r));
-
- // AppInfoLookup
- pList = pPackageInfoImpl->GetAppInfoListN();
- if (pList != null)
- {
- for (int i = 0; i < pList->GetCount(); i++)
- {
- _PackageAppInfoImpl* pAppInfoImpl = dynamic_cast <_PackageAppInfoImpl*>(pList->GetAt(i));
-
- if (pAppInfoImpl != null)
- {
- int uniqueId = 0;
- uniqueId = pAppInfoImpl->GetUniqueId();
-
- query.Format(1024, L"DELETE FROM AppInfoLookup WHERE AppInfoID = %d", uniqueId);
- r = db.ExecuteSql(query, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "UnregisterPackageInfo: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- query.Clear();
- }
- }
- delete pList;
- }
-
- // PkgInfo
- query.Format(1024, L"DELETE FROM PkgInfo WHERE PKG_ID = '%ls'", packageId.GetPointer());
- r = db.ExecuteSql(query, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "UnregisterPackageInfo: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- query.Clear();
-
- // AppInfo
- query.Format(1024, L"DELETE FROM AppInfo WHERE ID = %d", id);
- r = db.ExecuteSql(query, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "UnregisterPackageInfo: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- query.Clear();
-
- // PkgPrivileges
- query.Format(1024, L"DELETE FROM PkgPrivileges WHERE ID = %d", id);
- r = db.ExecuteSql(query, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "UnregisterPackageInfo: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- query.Clear();
-
- // DataControl
- query.Format(1024, L"DELETE FROM DataControl WHERE ID = %d", id);
- r = db.ExecuteSql(query, true);
- SysTryReturn(NID_APP, r == E_SUCCESS, r, r, "UnregisterPackageInfo: db.ExecuteSql is failed. [%s]", GetErrorMessage(r));
- query.Clear();
-
- delete pPkgInfo;
- return r;
-}
-
PackageInfo*
_PackageManagerImpl::GetPackageInfoN(const String& providerId, const String& operationId) const
{
return pPkgInfo;
}
-result
-_PackageManagerImpl::GetAppInfo(int uniqueId, _PackageAppInfoImpl& appInfo) const
-{
- result r = E_SUCCESS;
- Database db;
- DbStatement* pStmt = null;
- DbEnumerator* pEnum = null;
- String query;
-
- query.Format(1024, L"SELECT * FROM AppInfo WHERE UNIQUE_ID = %d", uniqueId);
-
- r = db.Construct(PACKAGE_DATABASE_FILE_NAME, "r");
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while opening a database.", GetErrorMessage(r));
-
- pStmt = CreateStatementN(db, query);
- SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult()));
-
- pEnum = ExecuteStatementN(db, pStmt);
- if (pEnum != null)
- {
- if (pEnum->MoveNext() == E_SUCCESS)
- {
- int uniqueId = 0;
- int pkgId = 0;
- String name;
- String defaultapp;
- String mainmenuIcon;
- String settingIcon;
- String tickerIcon;
- String quickpanelIcon;
- String launchImageIcon;
- int appFeature = 0;
- String packageName;
-
- pEnum->GetIntAt(0, uniqueId);
- pEnum->GetIntAt(1, pkgId);
- pEnum->GetStringAt(2, name);
- pEnum->GetStringAt(3, defaultapp);
- pEnum->GetStringAt(4, mainmenuIcon);
- pEnum->GetStringAt(5, settingIcon);
- pEnum->GetStringAt(7, quickpanelIcon);
- pEnum->GetIntAt(9, appFeature);
- pEnum->GetStringAt(10, packageName);
-
- appInfo.SetUniqueId(uniqueId);
- appInfo.SetPkgId(pkgId);
- appInfo.SetName(name);
- appInfo.SetDefault(defaultapp);
- appInfo.SetMainmenuIcon(mainmenuIcon);
- appInfo.SetSettingIcon(settingIcon);
- appInfo.SetQuickpanelIcon(quickpanelIcon);
- appInfo.SetAppFeature(appFeature);
- appInfo.SetPackageName(packageName);
- }
-
- delete pEnum;
- }
- else
- {
- r = E_OBJ_NOT_FOUND;
- }
-
-CATCH:
- delete pStmt;
- return r;
-}
-
ArrayList*
_PackageManagerImpl::GetPackageAppInfoImplListN(const String& packageId) const
{
}
result
-_PackageManagerImpl::RegisterAppInfoList(int id, ArrayList* pList)
-{
- SysTryReturnResult(NID_APP, __pDb != null, E_SYSTEM, "__pDb is null");
-
- result r = E_SUCCESS;
- String query;
- DbStatement* pStmt = null;
-
- if (pList != null)
- {
- for (int i = 0; i < pList->GetCount(); i++)
- {
- _PackageAppInfoImpl* pAppInfoImpl = dynamic_cast <_PackageAppInfoImpl*>(pList->GetAt(i));
-
- if (pAppInfoImpl != null)
- {
- DbEnumerator* pEnum = null;
- int uniqueId = 0;
-
- String name = pAppInfoImpl->GetName();
- String defaultapp = pAppInfoImpl->GetDefault();
- String mainmenuIcon = pAppInfoImpl->GetMainmenuIcon();
- String settingIcon = pAppInfoImpl->GetSettingIcon();
- String quickpanelIcon = pAppInfoImpl->GetQuickpanelIcon();
- int appFeature = pAppInfoImpl->GetAppFeature();
- String packageName = pAppInfoImpl->GetPackageName();
- String type = pAppInfoImpl->GetType();
-
- ArrayList* pLaunchConditionImplList = pAppInfoImpl->GetLaunchConditionList();
- ArrayList* pNotificationImplList = pAppInfoImpl->GetNotificationList();
- ArrayList* pAppFeatureImplList = pAppInfoImpl->GetAppFeatureList();
- ArrayList* pDataControlImplList = pAppInfoImpl->GetDataControlList();
-
- query.Format(
- 1024, L"INSERT INTO AppInfo "
- "(ID, APP_NAME, APP_DEFAULT, APP_MAINMENU_ICON, APP_SETTING_ICON, APP_TICKER_ICON, APP_QUICKPANEL_ICON, APP_LAUNCHIMAGE_ICON, APP_FEATURE, PACKAGE_NAME, APP_TYPE) "
- "VALUES (?,?,?,?,?,?,?,?,?,?,?)");
-
- pStmt = CreateStatementN(*__pDb, query);
- //SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult()));
-
- if (id != 0)
- {
- r = pStmt->BindInt(0, id);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!name.IsEmpty())
- {
- r = pStmt->BindString(1, name);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!defaultapp.IsEmpty())
- {
- r = pStmt->BindString(2, defaultapp);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!mainmenuIcon.IsEmpty())
- {
- r = pStmt->BindString(3, mainmenuIcon);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!settingIcon.IsEmpty())
- {
- r = pStmt->BindString(4, settingIcon);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!quickpanelIcon.IsEmpty())
- {
- r = pStmt->BindString(6, quickpanelIcon);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (appFeature != 0)
- {
- r = pStmt->BindInt(8, appFeature);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!packageName.IsEmpty())
- {
- r = pStmt->BindString(9, packageName);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!type.IsEmpty())
- {
- r = pStmt->BindString(10, type);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- pEnum = ExecuteStatementN(*__pDb, pStmt);
-
- query.Clear();
- delete pStmt;
- pStmt = null;
- delete pEnum;
-
- pAppInfoImpl->SetPkgId(id);
- uniqueId = pAppInfoImpl->GetUniqueId();
- RegisterLaunchConditionList(uniqueId, pLaunchConditionImplList);
- RegisterNotificationList(uniqueId, pNotificationImplList);
- RegisterAppFeatureList(uniqueId, pAppFeatureImplList);
- RegisterDataControlList(uniqueId, pDataControlImplList);
- //RegisterAppControlList(uniqueId, pAppControlImplList);
- }
- }
- }
-
- r = GetLastResult();
-
-CATCH:
- delete pStmt;
-
- return r;
-}
-
-result
-_PackageManagerImpl::RegisterLaunchConditionList(int id, ArrayList* pList)
-{
- SysTryReturnResult(NID_APP, __pDb != null, E_SYSTEM, "__pDb is null");
-
- result r = E_SUCCESS;
- String query;
- DbStatement* pStmt = null;
-
- if (pList != null)
- {
- for (int i = 0; i < pList->GetCount(); i++)
- {
- _LaunchConditionInfoImpl* pLaunchCondition = dynamic_cast<_LaunchConditionInfoImpl*>(pList->GetAt(i));
-
- if (pLaunchCondition != null)
- {
- DbEnumerator* pEnum = null;
-
- String name = pLaunchCondition->GetName();
- String value = pLaunchCondition->GetValue();
-
- query.Format(1024, L"INSERT INTO LaunchCondition (ID, NAME, VALUE) VALUES (?,?,?)");
-
- pStmt = CreateStatementN(*__pDb, query);
- //SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult()));
-
- if (id != 0)
- {
- r = pStmt->BindInt(0, id);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!name.IsEmpty())
- {
- r = pStmt->BindString(1, name);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!value.IsEmpty())
- {
- r = pStmt->BindString(2, value);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- pEnum = ExecuteStatementN(*__pDb, pStmt);
-
- query.Clear();
- delete pStmt;
- pStmt = null;
- delete pEnum;
- }
- }
- }
-
- r = GetLastResult();
-
-CATCH:
- delete pStmt;
-
- return r;
-}
-
-result
-_PackageManagerImpl::RegisterNotificationList(int id, ArrayList* pList)
-{
- SysTryReturnResult(NID_APP, __pDb != null, E_SYSTEM, "__pDb is null");
-
- result r = E_SUCCESS;
- String query;
- DbStatement* pStmt = null;
-
- if (pList != null)
- {
- for (int i = 0; i < pList->GetCount(); i++)
- {
- _NotificationInfoImpl* pNotification = dynamic_cast<_NotificationInfoImpl*>(pList->GetAt(i));
-
- if (pNotification != null)
- {
- DbEnumerator* pEnum = null;
-
- String name = pNotification->GetName();
- String value = pNotification->GetValue();
-
- query.Format(1024, L"INSERT INTO Notification (ID, NAME, VALUE) VALUES (?,?,?)");
-
- pStmt = CreateStatementN(*__pDb, query);
- //SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult()));
-
- if (id != 0)
- {
- r = pStmt->BindInt(0, id);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!name.IsEmpty())
- {
- r = pStmt->BindString(1, name);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!value.IsEmpty())
- {
- r = pStmt->BindString(2, value);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- pEnum = ExecuteStatementN(*__pDb, pStmt);
-
- query.Clear();
- delete pStmt;
- pStmt = null;
- delete pEnum;
- }
- }
- }
-
- r = GetLastResult();
-
-CATCH:
- delete pStmt;
-
- return r;
-}
-
-result
-_PackageManagerImpl::RegisterAppFeatureList(int id, ArrayList* pList)
-{
- SysTryReturnResult(NID_APP, __pDb != null, E_SYSTEM, "__pDb is null");
-
- result r = E_SUCCESS;
- String query;
- DbStatement* pStmt = null;
-
- if (pList != null)
- {
- for (int i = 0; i < pList->GetCount(); i++)
- {
- _AppFeatureInfoImpl* pAppFeature = dynamic_cast<_AppFeatureInfoImpl*>(pList->GetAt(i));
-
- if (pAppFeature != null)
- {
- DbEnumerator* pEnum = null;
-
- String name = pAppFeature->GetName();
- String value = pAppFeature->GetValue();
-
- query.Format(1024, L"INSERT INTO AppFeature (ID, NAME, VALUE) VALUES (?,?,?)");
-
- pStmt = CreateStatementN(*__pDb, query);
- //SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult()));
-
- if (id != 0)
- {
- r = pStmt->BindInt(0, id);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!name.IsEmpty())
- {
- r = pStmt->BindString(1, name);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!value.IsEmpty())
- {
- r = pStmt->BindString(2, value);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- pEnum = ExecuteStatementN(*__pDb, pStmt);
-
- query.Clear();
- delete pStmt;
- pStmt = null;
- delete pEnum;
- }
- }
- }
-
- r = GetLastResult();
-
-CATCH:
- delete pStmt;
-
- return r;
-}
-
-result
-_PackageManagerImpl::RegisterDataControlList(int id, ArrayList* pList)
-{
- SysTryReturnResult(NID_APP, __pDb != null, E_SYSTEM, "__pDb is null");
-
- result r = E_SUCCESS;
- String query;
- DbStatement* pStmt = null;
-
- if (pList != null)
- {
- for (int i = 0; i < pList->GetCount(); i++)
- {
- _DataControlInfoImpl* pDataControl = dynamic_cast<_DataControlInfoImpl*>(pList->GetAt(i));
-
- if (pDataControl != null)
- {
- DbEnumerator* pEnum = null;
-
- String providerId = pDataControl->GetProviderId();
- ArrayList* pTypeList = pDataControl->GetControlTypeList();
-
- if (pTypeList != null)
- {
- for (int j = 0; j < pTypeList->GetCount(); j++)
- {
- _DataControlTypeImpl* pControlType = dynamic_cast<_DataControlTypeImpl*>(pTypeList->GetAt(j));
-
- if (pControlType != null)
- {
- String access = pControlType->GetAccess();
- String type = pControlType->GetType();
-
- query.Format(1024, L"INSERT INTO DataControl (ID, PROVIDER_ID, TYPE, ACCESS) VALUES (?,?,?,?)");
-
- pStmt = CreateStatementN(*__pDb, query);
- //SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult()));
-
- if (id != 0)
- {
- r = pStmt->BindInt(0, id);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!providerId.IsEmpty())
- {
- r = pStmt->BindString(1, providerId);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!type.IsEmpty())
- {
- r = pStmt->BindString(2, type);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!access.IsEmpty())
- {
- r = pStmt->BindString(3, access);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- pEnum = ExecuteStatementN(*__pDb, pStmt);
-
- query.Clear();
- delete pStmt;
- pStmt = null;
- delete pEnum;
- }
- }
- }
- }
- }
- }
-
- r = GetLastResult();
-
-CATCH:
- delete pStmt;
-
- return r;
-}
-
-int
-_PackageManagerImpl::FindRecord(const String& tableName, const String& columnName, const String& value) const
-{
-
- result r = E_SUCCESS;
- Database db;
- String query;
- DbStatement* pStmt = null;
- DbEnumerator* pEnum = null;
- int uniqueId = 0;
-
- r = db.Construct(PACKAGE_DATABASE_FILE_NAME, "r");
- //SysTryCatch(NID_APP, r == E_SUCCESS, r, r, "[%s] An error occurs while opening a database.", GetErrorMessage(r));
-
- query.Format(1024, L"SELECT * FROM %ls WHERE %ls = '%ls'", tableName.GetPointer(), columnName.GetPointer(), value.GetPointer());
-
- pStmt = CreateStatementN(db, query);
- //SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult()));
-
- pEnum = ExecuteStatementN(db, pStmt);
-
- if (pEnum != null)
- {
- if (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetIntAt(0, uniqueId);
- }
-
- delete pEnum;
- }
-
-//CATCH:
- delete pStmt;
-
- return uniqueId;
-}
-
-result
-_PackageManagerImpl::GetRecord(const String& tableName, int uniqueId, const String& columnName, String& value) const
-{
- result r = E_SUCCESS;
- Database db;
- String query;
- DbStatement* pStmt = null;
- DbEnumerator* pEnum = null;
-
- r = db.Construct(PACKAGE_DATABASE_FILE_NAME, "r");
- //SysTryCatch(NID_APP, r == E_SUCCESS, r, r, "[%s] An error occurs while opening a database.", GetErrorMessage(r));
-
- query.Format(1024, L"SELECT %ls FROM %ls WHERE UNIQUE_ID = %d", columnName.GetPointer(), tableName.GetPointer(), uniqueId);
-
- pStmt = CreateStatementN(db, query);
- //SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult()));
-
- pEnum = ExecuteStatementN(db, pStmt);
-
- if (pEnum != null)
- {
- if (pEnum->MoveNext() == E_SUCCESS)
- {
- pEnum->GetStringAt(0, value);
- }
-
- delete pEnum;
- }
-
-//CATCH:
- delete pStmt;
-
- return r;
-}
-
-result
-_PackageManagerImpl::RegisterPrivileges(int id, const String& privileges, const String& hmacPrivileges, int certType)
-{
- SysTryReturnResult(NID_APP, __pDb != null, E_SYSTEM, "__pDb is null");
-
- result r = E_SUCCESS;
- String query;
- DbStatement* pStmt = null;
- DbEnumerator* pEnum = null;
-
- query.Format(1024, L"INSERT INTO PkgPrivileges (ID, PRIVILEGES, HMAC_PPRIVILEGES, CERTIFICATE_TYPE) VALUES (?,?,?,?)");
-
- pStmt = CreateStatementN(*__pDb, query);
- SysTryCatch(NID_APP, pStmt != null, GetLastResult(), GetLastResult(), "[%s] An error occurs while creating a database statement.", GetErrorMessage(GetLastResult()));
-
- if (id != 0)
- {
- r = pStmt->BindInt(0, id);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!privileges.IsEmpty())
- {
- r = pStmt->BindString(1, privileges);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (!hmacPrivileges.IsEmpty())
- {
- r = pStmt->BindString(2, hmacPrivileges);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- if (certType != 0)
- {
- r = pStmt->BindInt(3, certType);
- SysTryCatch(NID_APP, r == E_SUCCESS, , r, "[%s] An error occurs while constructing a database.", GetErrorMessage(r));
- }
-
- pEnum = ExecuteStatementN(*__pDb, pStmt);
-
- delete pStmt;
- pStmt = null;
- delete pEnum;
- pEnum = null;
-
- r = GetLastResult();
-
-CATCH:
- delete pStmt;
- return r;
-}
-
-result
_PackageManagerImpl::GetPackageName(const PackageId& packageId, const String* pName, char* pPackageName, int bufferSize)
{
result r = E_SUCCESS;