Change CertInfoParcelable
authorJunghyun Yeon <jungh.yeon@samsung.com>
Fri, 19 Feb 2021 08:57:19 +0000 (17:57 +0900)
committer연정현/Tizen Platform Lab(SR)/Staff Engineer/삼성전자 <jungh.yeon@samsung.com>
Tue, 23 Feb 2021 00:59:40 +0000 (09:59 +0900)
Change codes to accept pkgid to be used as getter parcelable.

Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
src/common/parcel/certinfo_parcelable.cc
src/common/parcel/certinfo_parcelable.hh

index 3d7e3d0..4417fc1 100644 (file)
@@ -24,11 +24,16 @@ namespace pkgmgr_common {
 namespace parcel {
 
 CertInfoParcelable::CertInfoParcelable()
-    : AbstractParcelable(0, ParcelableType::CertInfo), cert_info_(nullptr) {}
+    : AbstractParcelable(0, ParcelableType::CertInfo),
+        cert_info_(nullptr), pkgid_("") {}
 
 CertInfoParcelable::CertInfoParcelable(uid_t uid, pkgmgr_certinfo_x *cert_info)
     : AbstractParcelable(uid, ParcelableType::CertInfo),
-        cert_info_(cert_info) {}
+        cert_info_(cert_info), pkgid_("") {}
+
+CertInfoParcelable::CertInfoParcelable(uid_t uid, std::string pkgid)
+    : AbstractParcelable(uid, ParcelableType::CertInfo),
+        cert_info_(nullptr), pkgid_(pkgid) {}
 
 CertInfoParcelable::~CertInfoParcelable() {
   pkgmgrinfo_pkginfo_destroy_certinfo(cert_info_);
@@ -38,6 +43,10 @@ const pkgmgr_certinfo_x *CertInfoParcelable::GetCertInfo() {
   return cert_info_;
 }
 
+const std::string& CertInfoParcelable::GetPkgId() {
+  return pkgid_;
+}
+
 void CertInfoParcelable::WriteToParcel(tizen_base::Parcel* parcel) const {
   AbstractParcelable::WriteToParcel(parcel);
   WriteCertInfo(parcel, cert_info_);
@@ -83,6 +92,28 @@ void CertInfoParcelable::ReadCertInfo(tizen_base::Parcel* parcel) {
     ReadInt(parcel, &cert_info_->cert_id[i]);
 }
 
+bool CertInfoParcelable::WritePkgId(tizen_base::Parcel* parcel) {
+  if (pkgid_.empty()) {
+    // what is this for?
+    parcel->WriteBool(true);
+    return true;
+  }
+  // what is this for?
+  parcel->WriteBool(false);
+  WriteString(parcel, pkgid_.c_str());
+
+  return true;
+}
+
+void CertInfoParcelable::ReadPkgId(tizen_base::Parcel* parcel) {
+  bool is_null = false;
+  if (parcel->ReadBool(&is_null) != TIZEN_ERROR_NONE || is_null)
+    return;
+  char *tmp_char;
+  ReadString(parcel, &tmp_char);
+  pkgid_ = tmp_char;
+}
+
 std::unique_ptr<AbstractParcelable> CertInfoParcelable::Factory::CreateParcel() {
   return nullptr;
 }
index 674e3f5..2d4fac6 100644 (file)
@@ -3,6 +3,7 @@
 
 #include "abstract_parcelable.hh"
 
+#include <string>
 #include <vector>
 
 #include "pkgmgrinfo_private.h"
@@ -22,9 +23,11 @@ class EXPORT_API CertInfoParcelable : public AbstractParcelable {
   };
 
   CertInfoParcelable();
+  CertInfoParcelable(uid_t uid, std::string pkgid);
   CertInfoParcelable(uid_t uid, pkgmgr_certinfo_x *cert_info);
   ~CertInfoParcelable();
   const pkgmgr_certinfo_x *GetCertInfo();
+  const std::string& GetPkgId();
 
   void WriteToParcel(tizen_base::Parcel* parcel) const override;
   void ReadFromParcel(tizen_base::Parcel* parcel) override;
@@ -32,8 +35,11 @@ class EXPORT_API CertInfoParcelable : public AbstractParcelable {
  private:
   bool WriteCertInfo(tizen_base::Parcel* parcel, pkgmgr_certinfo_x *cert_info) const;
   void ReadCertInfo(tizen_base::Parcel* parcel);
+  bool WritePkgId(tizen_base::Parcel* parcel);
+  void ReadPkgId(tizen_base::Parcel* parcel);
 
   pkgmgr_certinfo_x *cert_info_;
+  std::string pkgid_;
 };
 
 }  // namespace parcel