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() {}
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_);
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_;
};
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() {}
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;
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);
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_;
};
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(
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()));
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_;
};
return false;
}
- psd::PkgSetDBHandler db(parcel->GetUid(), GetPID());
+ psd::PkgSetDBHandler db(parcel->GetUid(), GetPID(), is_offline_);
db.SetLocale(locale);
db.SetWriteType(parcel->GetWriteType());
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_;
};