#define PKGINFO_PARCELABLE_HH_
#include "abstract_parcelable.hh"
-#include "pkg_set_db_handler.hh"
#include <vector>
#include "pkgmgrinfo_basic.h"
+#include "pkg_write_type.hh"
+
namespace pkgmgr_common {
namespace parcel {
class EXPORT_API PkgInfoParcelable : public AbstractParcelable {
public:
- class EXPORT_API Factory : IFactory {
- public:
- std::unique_ptr<AbstractParcelable> CreateParcel();
- };
-
PkgInfoParcelable();
- PkgInfoParcelable(uid_t uid, std::vector<package_x *>&& pkg_list, WriteType write_type = None);
- const std::vector<package_x *>& GetPkgInfo();
- WriteType GetWriteType();
+ PkgInfoParcelable(uid_t uid,
+ std::vector<std::shared_ptr<package_x>>&& pkg_list,
+ PkgWriteType write_type, bool auto_release = true);
+ PkgInfoParcelable(int ret, std::vector<std::shared_ptr<package_x>>&& pkg_list,
+ bool auto_release = true);
+ ~PkgInfoParcelable();
+ const std::vector<std::shared_ptr<package_x>>& GetPkgInfo();
+ std::vector<std::shared_ptr<package_x>> ExtractPkgInfo();
+ PkgWriteType GetWriteType();
void WriteToParcel(tizen_base::Parcel* parcel) const override;
void ReadFromParcel(tizen_base::Parcel* parcel) override;
void WriteDescription(tizen_base::Parcel* parcel, GList* description) const;
void WriteLicense(tizen_base::Parcel* parcel, GList* license) const;
void WritePrivileges(tizen_base::Parcel* parcel, GList* privileges) const;
- void WriteAppdefinedPrivileges(tizen_base::Parcel* parcel, GList* appdefined_privileges) const;
- void WriteProvidesAppdefinedPrivileges(tizen_base::Parcel* parcel, GList* provides_appdefined_privileges) const;
+ void WriteAppdefinedPrivileges(tizen_base::Parcel* parcel,
+ GList* appdefined_privileges) const;
+ void WriteProvidesAppdefinedPrivileges(tizen_base::Parcel* parcel,
+ GList* provides_appdefined_privileges) const;
void WriteApplication(tizen_base::Parcel* parcel, GList* application) const;
- void WriteCompatibility(tizen_base::Parcel* parcel, GList* compatibility) const;
- void WriteDeviceprofile(tizen_base::Parcel* parcel, GList* deviceprofile) const;
- void WriteDependencies(tizen_base::Parcel* parcel, GList* dependencies) const;
+ void WriteCompatibility(tizen_base::Parcel* parcel,
+ GList* compatibility) const;
+ void WriteDeviceprofile(tizen_base::Parcel* parcel,
+ GList* deviceprofile) const;
+ void WriteDependencies(tizen_base::Parcel* parcel,
+ GList* dependencies) const;
void WritePlugin(tizen_base::Parcel* parcel, GList* plugin) const;
- void WritePackage(tizen_base::Parcel* parcel, package_x *package) const;
+ void WriteResAllowedPackages(tizen_base::Parcel* parcel,
+ GList* plugin) const;
+ void WriteMetadata(tizen_base::Parcel* parcel, GList* metadata) const;
+ void WritePackage(tizen_base::Parcel* parcel, package_x* package) const;
void ReadIcon(tizen_base::Parcel* parcel, GList** list);
void ReadLabel(tizen_base::Parcel* parcel, GList** list);
void ReadAuthor(tizen_base::Parcel* parcel, GList** list);
void ReadLicense(tizen_base::Parcel* parcel, GList** list);
void ReadPrivileges(tizen_base::Parcel* parcel, GList** list);
void ReadAppdefinedPrivileges(tizen_base::Parcel* parcel, GList** list);
- void ReadProvidesAppdefinedPrivileges(tizen_base::Parcel* parcel, GList** list);
+ void ReadProvidesAppdefinedPrivileges(tizen_base::Parcel* parcel,
+ GList** list);
void ReadApplication(tizen_base::Parcel* parcel, GList** list);
void ReadCompatibility(tizen_base::Parcel* parcel, GList** list);
void ReadDeviceprofile(tizen_base::Parcel* parcel, GList** list);
void ReadDependencies(tizen_base::Parcel* parcel, GList** list);
void ReadPlugin(tizen_base::Parcel* parcel, GList** list);
- package_x *ReadPackage(tizen_base::Parcel* parcel);
+ void ReadResAllowedPackages(tizen_base::Parcel* parcel, GList** list);
+ void ReadMetadata(tizen_base::Parcel* parcel, GList** list);
+ package_x* ReadPackage(tizen_base::Parcel* parcel);
- std::vector<package_x *> pkg_list_;
- WriteType write_type_;
+ std::vector<std::shared_ptr<package_x>> pkg_list_;
+ PkgWriteType write_type_;
+ bool auto_release_;
};
} // namespace parcel