From 7aa43a35faca62f85877c9fb2f94f6f032b8b1a0 Mon Sep 17 00:00:00 2001 From: Duyoung Jang Date: Mon, 25 Mar 2013 20:45:51 +0900 Subject: [PATCH] Update privilege string, PackageAppInfo for wgt Change-Id: Ibec7e12815e907f86a38aa62a492a590b3942197 Signed-off-by: Duyoung Jang --- src/app/inc/FAppPkg_PackageManagerImpl.h | 17 - src/app/package/FAppPkg_PackageManagerImpl.cpp | 1009 +----------------------- 2 files changed, 31 insertions(+), 995 deletions(-) diff --git a/src/app/inc/FAppPkg_PackageManagerImpl.h b/src/app/inc/FAppPkg_PackageManagerImpl.h index cc2874c..25386d0 100755 --- a/src/app/inc/FAppPkg_PackageManagerImpl.h +++ b/src/app/inc/FAppPkg_PackageManagerImpl.h @@ -146,8 +146,6 @@ public: Tizen::Base::String* GetAppIdOfDataControlN(const Tizen::Base::String& providerId); - result CreatePackageTables(void); - PackageInfo* GetPackageInfoN(const Tizen::Base::String& providerId, const Tizen::Base::String& operationId) const; PackageInfo* GetPackageInfoN(PackageType packageType, const Tizen::Base::String& packageName) const; @@ -157,8 +155,6 @@ public: Tizen::Base::Collection::IList* GetDataControlInfoN(const Tizen::Base::String& providerId, const Tizen::Base::String& type) const; Tizen::Base::Collection::IMap* GetUiThemeListN(const PackageId& packageId) const; - result RegisterPackageInfo(_PackageInfoImpl& pkgInfoImpl); - result UnregisterPackageInfo(const PackageId& packageId); Tizen::Base::Collection::ArrayList* GetPackageAppInfoImplListN(const PackageId& packageId) const; Tizen::Base::Collection::ArrayList* GetPackageAppFeatureListN(const PackageId& packageId, const Tizen::Base::String& executableName) const; Tizen::Base::Collection::HashMapT* GetPackageAppFeatureMapN(const PackageId& packageId, const Tizen::Base::String& executableName) const; @@ -178,18 +174,6 @@ private: _PackageManagerImpl(void); virtual ~_PackageManagerImpl(void); - result GetAppInfo(int uniqueId, _PackageAppInfoImpl& appInfo) const; - - result RegisterAppInfoList(int id, Tizen::Base::Collection::ArrayList* pList); - result RegisterLaunchConditionList(int id, Tizen::Base::Collection::ArrayList* pList); - result RegisterNotificationList(int id, Tizen::Base::Collection::ArrayList* pList); - result RegisterAppFeatureList(int id, Tizen::Base::Collection::ArrayList* pList); - result RegisterDataControlList(int id, Tizen::Base::Collection::ArrayList* pList); - result RegisterPrivileges(int id, const Tizen::Base::String& privileges, const Tizen::Base::String& hmacPrivileges, int certType); - - int FindRecord(const Tizen::Base::String& tableName, const Tizen::Base::String& columnName, const Tizen::Base::String& value) const; - result GetRecord(const Tizen::Base::String& tableName, int uniqueId, const Tizen::Base::String& columnName, Tizen::Base::String& value) const; - static int PackageEventHandler(int req_id, const char* pkg_type, const char* pkg_name, const char* key, const char* val, const void* pmsg, void* data); static int InstallationEventHandler(int reqId, const char* pType, const char* pPackageId, const char* pKey, const char* pVal, const void* pMsg, void* pData); static int UninstallationEventHandler(int reqId, const char* pType, const char* pPackageId, const char* pKey, const char* pVal, const void* pMsg, void* pData); @@ -200,7 +184,6 @@ protected: private: void* __pRequestClient; void* __pListeningClient; - Tizen::Io::Database* __pDb; static Tizen::Base::Collection::HashMap __installationList; Tizen::Base::Collection::LinkedListT <_PackageManagerEvent*> __packageEventListenerList; diff --git a/src/app/package/FAppPkg_PackageManagerImpl.cpp b/src/app/package/FAppPkg_PackageManagerImpl.cpp index 87a7a32..aef44b2 100755 --- a/src/app/package/FAppPkg_PackageManagerImpl.cpp +++ b/src/app/package/FAppPkg_PackageManagerImpl.cpp @@ -755,8 +755,36 @@ _PackageManagerImpl::GetPackageInfoFromFileN(const String& filePath) const 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); } @@ -1010,10 +1038,8 @@ _PackageManagerImpl::Construct(void) _PackageManagerImpl::_PackageManagerImpl(void) :__pRequestClient(null), -__pListeningClient(null), -__pDb(null) +__pListeningClient(null) { - CreatePackageTables(); } _PackageManagerImpl::~_PackageManagerImpl(void) @@ -1469,393 +1495,6 @@ CATCH: 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 { @@ -1901,73 +1540,6 @@ CATCH: 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 { @@ -2167,525 +1739,6 @@ CATCH: } 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; -- 2.7.4