}
if (parcel->GetType() != parcel_type) {
- LOG(ERROR) << "Invalid parcelable Type";
+ LOG(ERROR) << "Invalid parcelable Type " << parcel->GetType() << ' ' << parcel_type;
return PMINFO_R_ERROR;
}
LOG(DEBUG) << "No packages meets given condition for user " << uid;
return PMINFO_R_ENOENT;
}
- for (auto pkginfo : result_list)
- g_hash_table_insert(packages, (gpointer)pkginfo->package,
- (gpointer)pkginfo);
+ for (auto& pkginfo : result_list)
+ g_hash_table_insert(packages, reinterpret_cast<gpointer>(pkginfo->package),
+ reinterpret_cast<gpointer>(pkginfo.get()));
return PMINFO_R_OK;
}
std::shared_ptr<pcp::AppInfoParcelable> return_parcel(
std::static_pointer_cast<pcp::AppInfoParcelable>(ptr));
- std::vector<application_x*> result_list = return_parcel->ExtractAppInfo();
- for (application_x* app : result_list)
- g_hash_table_insert(packages, (gpointer)app->appid,
- (gpointer)app);
+ std::vector<std::shared_ptr<application_x>> result_list = return_parcel->ExtractAppInfo();
+ for (auto& app : result_list)
+ g_hash_table_insert(packages, reinterpret_cast<gpointer>(app->appid),
+ reinterpret_cast<gpointer>(app.get()));
return PMINFO_R_OK;
}
pkgmgr_common::DBOperationType::OPERATION_TYPE_READ));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::READ_QUERY);
if (!client.SendRequest())
return nullptr;
pkgmgr_common::DBOperationType::OPERATION_TYPE_READ));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::READ_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
pkgmgr_common::DBOperationType::OPERATION_TYPE_READ));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::READ_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
pkgmgr_common::DBOperationType::OPERATION_TYPE_READ));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::READ_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
pkgmgr_common::DBOperationType::OPERATION_TYPE_READ));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::READ_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
pkgmgr_common::DBOperationType::OPERATION_TYPE_READ));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::READ_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
pkgmgr_common::DBOperationType::OPERATION_TYPE_READ));
pkgmgr_client::PkgInfoClient client(parcelable, _getuid(),
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::READ_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
std::shared_ptr<pcp::ResultParcelable> return_parcel(
std::static_pointer_cast<pcp::ResultParcelable>(ptr));
+ auto& result_list = return_parcel->GetResult();
+ if (result_list.size() == 0)
+ return PMINFO_R_ENOENT;
+
if (return_parcel->GetCol() != 1) {
LOG(ERROR) << "Invalid result";
return PMINFO_R_ERROR;
}
- auto& result_list = return_parcel->GetResult();
- if (result_list.size() == 0)
- return PMINFO_R_ENOENT;
-
for (auto& result : result_list) {
if (result.size() != 1) {
LOG(ERROR) << "Invalid result";
}
std::shared_ptr<pcp::AbstractParcelable> parcelable(
- new pcp::QueryParcelable(uid, std::move(info),
+ new pcp::QueryParcelable(uid, info,
pkgmgr_common::DBType::DB_TYPE_FILE_PKGDB,
pkgmgr_common::DBOperationType::OPERATION_TYPE_READ));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::READ_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
pkgmgr_common::DBOperationType::OPERATION_TYPE_WRITE));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::WRITE_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
pkgmgr_common::DBType::DB_TYPE_FILE_CERTDB,
pkgmgr_common::DBOperationType::OPERATION_TYPE_READ));
pkgmgr_client::PkgInfoClient client(parcelable, 0,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::READ_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
pkgmgr_common::DBType::DB_TYPE_FILE_PKGDB,
pkgmgr_common::DBOperationType::OPERATION_TYPE_READ));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::READ_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
pkgmgr_common::DBOperationType::OPERATION_TYPE_WRITE));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::WRITE_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
}
std::shared_ptr<pcp::AbstractParcelable> parcelable(
- new pcp::QueryParcelable(uid, std::move(queries),
+ new pcp::QueryParcelable(uid, queries,
pkgmgr_common::DBType::DB_TYPE_FILE_PKGDB,
pkgmgr_common::DBOperationType::OPERATION_TYPE_WRITE));
pkgmgr_client::PkgInfoClient client(parcelable, uid,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::WRITE_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
manifest_x* mfx, uid_t uid) {
auto parcelable =
std::make_shared<pcp::PkgInfoParcelable>(uid,
- std::vector<package_x*>{mfx},
- pkgmgr_common::PkgWriteType::Insert, false);
+ std::vector<std::shared_ptr<package_x>>(1,
+ std::shared_ptr<package_x>(mfx, [] (package_x*) -> void {})),
+ pkgmgr_common::PkgWriteType::Insert, false);
pkgmgr_client::PkgInfoClient client(parcelable, uid,
pkgmgr_common::ReqType::SET_PKG_INFO);
manifest_x* mfx, uid_t uid) {
auto parcelable =
std::make_shared<pcp::PkgInfoParcelable>(uid,
- std::vector<package_x*>{mfx},
- pkgmgr_common::PkgWriteType::Update, false);
+ std::vector<std::shared_ptr<package_x>>(1,
+ std::shared_ptr<package_x>(mfx, [] (package_x*) -> void {})),
+ pkgmgr_common::PkgWriteType::Update, false);
pkgmgr_client::PkgInfoClient client(parcelable, uid,
pkgmgr_common::ReqType::SET_PKG_INFO);
manifest_x* mfx, uid_t uid) {
auto parcelable =
std::make_shared<pcp::PkgInfoParcelable>(uid,
- std::vector<package_x*>{mfx},
- pkgmgr_common::PkgWriteType::Delete, false);
+ std::vector<std::shared_ptr<package_x>>(1,
+ std::shared_ptr<package_x>(mfx, [] (package_x*) -> void {})),
+ pkgmgr_common::PkgWriteType::Delete, false);
pkgmgr_client::PkgInfoClient client(parcelable, uid,
pkgmgr_common::ReqType::SET_PKG_INFO);
pkgmgr_common::DBOperationType::OPERATION_TYPE_WRITE));
pkgmgr_client::PkgInfoClient client(parcelable, 0,
- pkgmgr_common::ReqType::QUERY);
+ pkgmgr_common::ReqType::WRITE_QUERY);
if (!client.SendRequest())
return PMINFO_R_ERROR;
client.GetResultParcel(), pcp::ParcelableType::Result);
}
-extern "C" EXPORT_API int _parser_clear_cache_memory_db(uid_t uid) {
+extern "C" EXPORT_API int _parser_update_pending_cache(const char* pkgid) {
std::shared_ptr<pcp::AbstractParcelable> parcelable(
- new pcp::CommandParcelable(uid, CommandType::RemoveCache));
+ new pcp::CommandParcelable(_getuid(),
+ CommandType::UpdatePendingCache, { pkgid }));
- pkgmgr_client::PkgInfoClient client(parcelable, uid,
+ pkgmgr_client::PkgInfoClient client(parcelable, _getuid(),
pkgmgr_common::ReqType::COMMAND);
if (!client.SendRequest())