return PMINFO_R_OK;
}
+
+extern "C" EXPORT_API int _parser_execute_write_query(const char *query, uid_t uid)
+{
+ std::shared_ptr<pkgmgr_common::parcel::AbstractParcelable> parcelable(
+ new pkgmgr_common::parcel::QueryParcelable(uid, query,
+ pkgmgr_common::database::AbstractDBHandler::DBType::DB_TYPE_FILE_PKGDB,
+ pkgmgr_common::database::AbstractDBHandler::OperationType::OPERATION_TYPE_WRITE));
+
+ pkgmgr_client::PkgInfoClient client(parcelable, uid,
+ pkgmgr_common::ReqType::QUERY);
+ if (!client.SendRequest()) {
+ return -1;
+ }
+
+ std::shared_ptr<pkgmgr_common::parcel::ResultParcelable> return_parcel(
+ std::static_pointer_cast<pkgmgr_common::parcel::ResultParcelable>(
+ client.GetResultParcel()));
+
+ auto result_list = return_parcel->GetResult();
+ if (result_list.size() != 1) {
+ LOG(ERROR) << "Invalid result";
+ return -1;
+ }
+
+ if (result_list[0].size() != 1) {
+ LOG(ERROR) << "Invalid result";
+ return -1;
+ }
+
+ LOG(ERROR) << "result : " << result_list[0][0];
+ if (result_list[0][0] != "SUCCESS")
+ return -1;
+
+ return 0;
+}
+
+extern "C" EXPORT_API int _parser_execute_write_queries(const char **queries, int len, uid_t uid)
+{
+ std::vector<std::string> query_vt;
+ for (int i = 0; i < len; ++i)
+ query_vt.emplace_back(queries[i]);
+
+ std::shared_ptr<pkgmgr_common::parcel::AbstractParcelable> parcelable(
+ new pkgmgr_common::parcel::QueryParcelable(uid, query_vt,
+ pkgmgr_common::database::AbstractDBHandler::DBType::DB_TYPE_FILE_PKGDB,
+ pkgmgr_common::database::AbstractDBHandler::OperationType::OPERATION_TYPE_WRITE));
+
+ pkgmgr_client::PkgInfoClient client(parcelable, uid,
+ pkgmgr_common::ReqType::QUERY);
+ if (!client.SendRequest()) {
+ return -1;
+ }
+
+ std::shared_ptr<pkgmgr_common::parcel::ResultParcelable> return_parcel(
+ std::static_pointer_cast<pkgmgr_common::parcel::ResultParcelable>(
+ client.GetResultParcel()));
+
+ auto result_list = return_parcel->GetResult();
+ if (result_list.size() != 1) {
+ LOG(ERROR) << "Invalid result";
+ return -1;
+ }
+
+ if (result_list[0].size() != 1) {
+ LOG(ERROR) << "Invalid result";
+ return -1;
+ }
+
+ LOG(ERROR) << "result : " << result_list[0][0];
+ if (result_list[0][0] != "SUCCESS")
+ return -1;
+
+ return 0;
+}