1 #ifndef PKGINFO_PARCELABLE_HH_
2 #define PKGINFO_PARCELABLE_HH_
4 #include "abstract_parcelable.hh"
8 #include "pkgmgrinfo_basic.h"
10 #include "pkg_write_type.hh"
12 namespace pkgmgr_common {
16 #define EXPORT_API __attribute__((visibility("default")))
19 class EXPORT_API PkgInfoParcelable : public AbstractParcelable {
22 PkgInfoParcelable(uid_t uid,
23 std::vector<std::shared_ptr<package_x>>&& pkg_list,
24 PkgWriteType write_type, bool auto_release = true);
25 PkgInfoParcelable(int ret, std::vector<std::shared_ptr<package_x>>&& pkg_list,
26 bool auto_release = true);
28 const std::vector<std::shared_ptr<package_x>>& GetPkgInfo();
29 std::vector<std::shared_ptr<package_x>> ExtractPkgInfo();
30 PkgWriteType GetWriteType();
32 void WriteToParcel(tizen_base::Parcel* parcel) const override;
33 void ReadFromParcel(tizen_base::Parcel* parcel) override;
36 void WriteIcon(tizen_base::Parcel* parcel, GList* icon) const;
37 void WriteLabel(tizen_base::Parcel* parcel, GList* label) const;
38 void WriteAuthor(tizen_base::Parcel* parcel, GList* author) const;
39 void WriteDescription(tizen_base::Parcel* parcel, GList* description) const;
40 void WriteLicense(tizen_base::Parcel* parcel, GList* license) const;
41 void WritePrivileges(tizen_base::Parcel* parcel, GList* privileges) const;
42 void WriteAppdefinedPrivileges(tizen_base::Parcel* parcel,
43 GList* appdefined_privileges) const;
44 void WriteProvidesAppdefinedPrivileges(tizen_base::Parcel* parcel,
45 GList* provides_appdefined_privileges) const;
46 void WriteApplication(tizen_base::Parcel* parcel, GList* application) const;
47 void WriteCompatibility(tizen_base::Parcel* parcel,
48 GList* compatibility) const;
49 void WriteDeviceprofile(tizen_base::Parcel* parcel,
50 GList* deviceprofile) const;
51 void WriteDependencies(tizen_base::Parcel* parcel,
52 GList* dependencies) const;
53 void WritePlugin(tizen_base::Parcel* parcel, GList* plugin) const;
54 void WriteResAllowedPackages(tizen_base::Parcel* parcel,
56 void WriteMetadata(tizen_base::Parcel* parcel, GList* metadata) const;
57 void WritePackage(tizen_base::Parcel* parcel, package_x* package) const;
58 void ReadIcon(tizen_base::Parcel* parcel, GList** list);
59 void ReadLabel(tizen_base::Parcel* parcel, GList** list);
60 void ReadAuthor(tizen_base::Parcel* parcel, GList** list);
61 void ReadDescription(tizen_base::Parcel* parcel, GList** list);
62 void ReadLicense(tizen_base::Parcel* parcel, GList** list);
63 void ReadPrivileges(tizen_base::Parcel* parcel, GList** list);
64 void ReadAppdefinedPrivileges(tizen_base::Parcel* parcel, GList** list);
65 void ReadProvidesAppdefinedPrivileges(tizen_base::Parcel* parcel,
67 void ReadApplication(tizen_base::Parcel* parcel, GList** list);
68 void ReadCompatibility(tizen_base::Parcel* parcel, GList** list);
69 void ReadDeviceprofile(tizen_base::Parcel* parcel, GList** list);
70 void ReadDependencies(tizen_base::Parcel* parcel, GList** list);
71 void ReadPlugin(tizen_base::Parcel* parcel, GList** list);
72 void ReadResAllowedPackages(tizen_base::Parcel* parcel, GList** list);
73 void ReadMetadata(tizen_base::Parcel* parcel, GList** list);
74 package_x* ReadPackage(tizen_base::Parcel* parcel);
76 std::vector<std::shared_ptr<package_x>> pkg_list_;
77 PkgWriteType write_type_;
82 } // namespace pkgmgr_common
84 #endif // PKGINFO_PARCELABLE_HH_