Skip SetMemoryMode in offline mode 86/268986/3
authorIlho Kim <ilho159.kim@samsung.com>
Thu, 6 Jan 2022 04:20:27 +0000 (13:20 +0900)
committerIlho Kim <ilho159.kim@samsung.com>
Thu, 6 Jan 2022 05:07:54 +0000 (14:07 +0900)
SetMemoryMode is unnecessarily performed during mic build
so skip SetMemoryMode operation in offline mode

Change-Id: I4ab061f097aa488abbcac4d37e23e06fdb182700
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
src/server/database/cert_set_db_handler.cc
src/server/database/cert_set_db_handler.hh
src/server/database/pkg_set_db_handler.cc
src/server/database/pkg_set_db_handler.hh
src/server/request_handler/request_handler_direct_access.cc
src/server/request_handler/set_cert_request_handler.cc
src/server/request_handler/set_cert_request_handler.hh
src/server/request_handler/set_pkginfo_request_handler.cc
src/server/request_handler/set_pkginfo_request_handler.hh

index d89d027..179789a 100644 (file)
@@ -25,8 +25,9 @@
 namespace pkgmgr_server {
 namespace database {
 
-CertSetDBHandler::CertSetDBHandler(uid_t uid, int pid)
-    : AbstractDBHandler(uid, pid), uid_(uid), handle_(nullptr) {}
+CertSetDBHandler::CertSetDBHandler(uid_t uid, int pid, bool is_offline)
+    : AbstractDBHandler(uid, pid), uid_(uid),
+      is_offline_(is_offline), handle_(nullptr) {}
 
 CertSetDBHandler::~CertSetDBHandler() {}
 
@@ -43,7 +44,8 @@ int CertSetDBHandler::Execute() {
   if (!Connect())
     return PMINFO_R_ERROR;
 
-  DBHandleProvider::GetInst(uid_).SetMemoryMode(GetPID());
+  if (!is_offline_)
+    DBHandleProvider::GetInst(uid_).SetMemoryMode(GetPID());
   sqlite3* conn = GetConnection().front().first;
 
   return certinfo_internal_set(conn, handle_->pkgid, handle_, uid_);
index 51dcd9a..e45db18 100644 (file)
@@ -34,13 +34,14 @@ namespace database {
 
 class EXPORT_API CertSetDBHandler : public AbstractDBHandler{
  public:
-  CertSetDBHandler(uid_t uid, int pid);
+  CertSetDBHandler(uid_t uid, int pid, bool is_offline = false);
   ~CertSetDBHandler();
   void SetCertHandle (pkgmgr_certinfo_x* cert_info);
   int Execute() override;
 
  private:
   uid_t uid_;
+  bool is_offline_;
   pkgmgr_certinfo_x* handle_;
 };
 
index 73cb138..f6840d7 100644 (file)
@@ -27,8 +27,8 @@
 namespace pkgmgr_server {
 namespace database {
 
-PkgSetDBHandler::PkgSetDBHandler(uid_t uid, int pid)
-    : AbstractDBHandler(uid, pid), uid_(uid) {}
+PkgSetDBHandler::PkgSetDBHandler(uid_t uid, int pid, bool is_offline)
+    : AbstractDBHandler(uid, pid), uid_(uid), is_offline_(is_offline) {}
 
 PkgSetDBHandler::~PkgSetDBHandler() {}
 
@@ -56,7 +56,9 @@ int PkgSetDBHandler::Execute() {
   if (!Connect())
     return PMINFO_R_ERROR;
 
-  DBHandleProvider::GetInst(uid_).SetMemoryMode(GetPID());
+  if (!is_offline_)
+    DBHandleProvider::GetInst(uid_).SetMemoryMode(GetPID());
+
   std::vector<std::pair<sqlite3*, uid_t>> conn_list = GetConnection();
   sqlite3* conn = conn_list.front().first;
   int ret = 0;
index 2d99c46..8524f20 100644 (file)
@@ -38,7 +38,7 @@ namespace database {
 
 class EXPORT_API PkgSetDBHandler : public AbstractDBHandler{
  public:
-  PkgSetDBHandler(uid_t uid, int pid);
+  PkgSetDBHandler(uid_t uid, int pid, bool is_offline = false);
   ~PkgSetDBHandler();
   void SetPkgInfo(package_x* package);
   void SetPkgID(std::string pkgid);
@@ -50,6 +50,7 @@ class EXPORT_API PkgSetDBHandler : public AbstractDBHandler{
   std::string pkgid_;
   package_x* package_ = nullptr;
   uid_t uid_;
+  bool is_offline_;
   pkgmgr_common::PkgWriteType write_type_ = pkgmgr_common::PkgWriteType::None;
   std::vector<std::vector<std::string>> result_;
 };
index 3fa03e8..cfdf403 100644 (file)
@@ -55,11 +55,11 @@ extern "C" EXPORT_API void* _request_handler_direct_access(int req_type,
       break;
     case pkgmgr_common::ReqType::SET_PKG_INFO:
       handler.reset(
-          new pkgmgr_server::request_handler::SetPkginfoRequestHandler());
+          new pkgmgr_server::request_handler::SetPkginfoRequestHandler(true));
       break;
     case pkgmgr_common::ReqType::SET_CERT_INFO:
       handler.reset(
-          new pkgmgr_server::request_handler::SetCertRequestHandler());
+          new pkgmgr_server::request_handler::SetCertRequestHandler(true));
       break;
     case pkgmgr_common::ReqType::GET_CERT_INFO:
       handler.reset(
index 32c360a..6c105f7 100644 (file)
@@ -40,7 +40,7 @@ bool SetCertRequestHandler::HandleRequest(unsigned char* data, int size,
     return false;
   }
 
-  psd::CertSetDBHandler db(parcel->GetUid(), GetPID());
+  psd::CertSetDBHandler db(parcel->GetUid(), GetPID(), is_offline_);
   db.SetLocale(locale);
   db.SetCertHandle(const_cast<pkgmgr_certinfo_x*>(parcel->GetCertInfo()));
 
index dae2054..828b3de 100644 (file)
@@ -19,12 +19,15 @@ namespace request_handler {
 
 class EXPORT_API SetCertRequestHandler : public AbstractRequestHandler {
  public:
+  SetCertRequestHandler(bool is_offline = false) :
+      AbstractRequestHandler(), is_offline_(is_offline) {}
   bool HandleRequest(unsigned char* data, int size,
       const std::string& locale) override;
 
   std::vector<uint8_t> ExtractResult() override;
 
  private:
+  bool is_offline_;
   std::shared_ptr<pkgmgr_common::parcel::ResultParcelable> result_;
 };
 
index d7a8f8b..d8dd915 100644 (file)
@@ -42,7 +42,7 @@ bool SetPkginfoRequestHandler::HandleRequest(unsigned char* data, int size,
     return false;
   }
 
-  psd::PkgSetDBHandler db(parcel->GetUid(), GetPID());
+  psd::PkgSetDBHandler db(parcel->GetUid(), GetPID(), is_offline_);
   db.SetLocale(locale);
   db.SetWriteType(parcel->GetWriteType());
 
index 8006920..94aa5a4 100644 (file)
@@ -19,12 +19,15 @@ namespace request_handler {
 
 class EXPORT_API SetPkginfoRequestHandler : public AbstractRequestHandler {
  public:
+  SetPkginfoRequestHandler(bool is_offline = false) :
+      AbstractRequestHandler(), is_offline_(is_offline) {}
   bool HandleRequest(unsigned char* data, int size,
       const std::string& locale) override;
 
   std::vector<uint8_t> ExtractResult() override;
 
  private:
+  bool is_offline_;
   std::shared_ptr<pkgmgr_common::parcel::ResultParcelable> result_;
 };