void PkgInfoParcelable::WriteIcon(tizen_base::Parcel* parcel,
GList* icon) const {
- int size = g_list_length(icon);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(icon));
for (GList* tmp = icon; tmp; tmp = tmp->next) {
icon_x* ptr = reinterpret_cast<icon_x*>(tmp->data);
void PkgInfoParcelable::WriteLabel(tizen_base::Parcel* parcel,
GList* label) const {
- int size = g_list_length(label);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(label));
for (GList* tmp = label; tmp; tmp = tmp->next) {
label_x* ptr = reinterpret_cast<label_x*>(tmp->data);
void PkgInfoParcelable::WriteAuthor(tizen_base::Parcel* parcel,
GList* author) const {
- int size = g_list_length(author);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(author));
for (GList* tmp = author; tmp; tmp = tmp->next) {
author_x* ptr = reinterpret_cast<author_x*>(tmp->data);
void PkgInfoParcelable::WriteDescription(tizen_base::Parcel* parcel,
GList* description) const {
- int size = g_list_length(description);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(description));
for (GList* tmp = description; tmp; tmp = tmp->next) {
description_x* ptr = reinterpret_cast<description_x*>(tmp->data);
void PkgInfoParcelable::WritePrivileges(tizen_base::Parcel* parcel,
GList* privileges) const {
- int size = g_list_length(privileges);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(privileges));
for (GList* tmp = privileges; tmp; tmp = tmp->next) {
privilege_x* ptr = reinterpret_cast<privilege_x*>(tmp->data);
void PkgInfoParcelable::WriteAppdefinedPrivileges(tizen_base::Parcel* parcel,
GList* appdefined_privileges) const {
- int size = g_list_length(appdefined_privileges);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(appdefined_privileges));
for (GList* tmp = appdefined_privileges; tmp; tmp = tmp->next) {
appdefined_privilege_x* ptr =
void PkgInfoParcelable::WriteProvidesAppdefinedPrivileges(
tizen_base::Parcel* parcel, GList* provides_appdefined_privileges) const {
- int size = g_list_length(provides_appdefined_privileges);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(provides_appdefined_privileges));
for (GList* tmp = provides_appdefined_privileges; tmp; tmp = tmp->next) {
appdefined_privilege_x* ptr =
void PkgInfoParcelable::WriteApplication(tizen_base::Parcel* parcel,
GList* application) const {
- std::vector<application_x *> app_vt;
+ std::vector<std::shared_ptr<application_x>> app_vt;
for (GList* tmp = application; tmp; tmp = tmp->next) {
application_x* ptr = reinterpret_cast<application_x*>(tmp->data);
- app_vt.push_back(ptr);
+ app_vt.emplace_back(ptr, [] (application_x*) -> void {});
}
AppInfoParcelable apps(0, std::move(app_vt), false);
void PkgInfoParcelable::WriteDeviceprofile(tizen_base::Parcel* parcel,
GList* deviceprofile) const {
- int size = g_list_length(deviceprofile);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(deviceprofile));
for (GList* tmp = deviceprofile; tmp; tmp = tmp->next)
- WriteString(parcel, reinterpret_cast<char *>(tmp->data));
+ WriteString(parcel, reinterpret_cast<char*>(tmp->data));
}
void PkgInfoParcelable::WriteDependencies(tizen_base::Parcel* parcel,
GList* dependencies) const {
- int size = g_list_length(dependencies);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(dependencies));
for (GList* tmp = dependencies; tmp; tmp = tmp->next) {
dependency_x* ptr = reinterpret_cast<dependency_x*>(tmp->data);
void PkgInfoParcelable::WritePlugin(tizen_base::Parcel* parcel,
GList* plugin) const {
- int size = g_list_length(plugin);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(plugin));
for (GList* tmp = plugin; tmp; tmp = tmp->next) {
plugin_x* ptr = reinterpret_cast<plugin_x*>(tmp->data);
void PkgInfoParcelable::WriteResAllowedPackages(tizen_base::Parcel* parcel,
GList* res_allowed_packages) const {
- int size = g_list_length(res_allowed_packages);
- WriteInt(parcel, size);
+ WriteInt(parcel, g_list_length(res_allowed_packages));
for (GList* tmp = res_allowed_packages; tmp; tmp = tmp->next) {
res_allowed_package_x* ptr =
WriteString(parcel, ptr->allowed_package);
WriteInt(parcel, g_list_length(ptr->required_privileges));
- for (GList *priv = ptr->required_privileges; priv; priv = priv->next)
- WriteString(parcel, reinterpret_cast<char *>(priv->data));
+ for (GList* priv = ptr->required_privileges; priv; priv = priv->next)
+ WriteString(parcel, reinterpret_cast<char*>(priv->data));
}
}
void PkgInfoParcelable::WritePackage(tizen_base::Parcel* parcel,
- package_x *package) const {
+ package_x* package) const {
WriteString(parcel, package->for_all_users);
WriteString(parcel, package->package);
WriteString(parcel, package->version);
WriteString(parcel, package->locale);
WriteString(parcel, package->res_type);
WriteString(parcel, package->res_version);
+ WriteString(parcel, package->is_disabled);
+ WriteString(parcel, package->light_user_switch_mode);
WriteIcon(parcel, package->icon);
WriteLabel(parcel, package->label);
WriteAuthor(parcel, package->author);
AppInfoParcelable apps;
parcel->ReadParcelable(&apps);
- std::vector<application_x *> vt = apps.ExtractAppInfo();
+ std::vector<std::shared_ptr<application_x>> vt = apps.ExtractAppInfo();
- for (application_x *application : vt)
- *list = g_list_append(*list, application);
+ for (auto& application : vt)
+ *list = g_list_append(*list, application.get());
}
void PkgInfoParcelable::ReadCompatibility(
ReadInt(parcel, &size);
for (int i = 0; i < size; ++i) {
- char *device_profile = nullptr;
+ char* device_profile = nullptr;
ReadString(parcel, &device_profile);
*list = g_list_append(*list, device_profile);
}
ReadString(parcel, &res_allowed_package->allowed_package);
int priv_len;
- GList *priv_list = nullptr;
+ GList* priv_list = nullptr;
ReadInt(parcel, &priv_len);
for (int i = 0; i < priv_len; ++i) {
- char *priv = nullptr;
+ char* priv = nullptr;
ReadString(parcel, &priv);
priv_list = g_list_prepend(priv_list, priv);
}
}
}
-package_x *PkgInfoParcelable::ReadPackage(tizen_base::Parcel* parcel) {
+package_x* PkgInfoParcelable::ReadPackage(tizen_base::Parcel* parcel) {
package_x* package =
reinterpret_cast<package_x*>(calloc(1, sizeof(package_x)));
ReadString(parcel, &package->locale);
ReadString(parcel, &package->res_type);
ReadString(parcel, &package->res_version);
+ ReadString(parcel, &package->is_disabled);
+ ReadString(parcel, &package->light_user_switch_mode);
ReadIcon(parcel, &package->icon);
ReadLabel(parcel, &package->label);
ReadAuthor(parcel, &package->author);
PkgInfoParcelable::PkgInfoParcelable()
: AbstractParcelable(0, ParcelableType::PkgInfo),
- write_type_(WriteType::None), auto_release_(true) {}
+ write_type_(PkgWriteType::None), auto_release_(true) {}
PkgInfoParcelable::PkgInfoParcelable(
- uid_t uid, std::vector<package_x *>&& pkg_list,
- WriteType write_type, bool auto_release)
+ uid_t uid, std::vector<std::shared_ptr<package_x>>&& pkg_list,
+ PkgWriteType write_type, bool auto_release)
: AbstractParcelable(uid, ParcelableType::PkgInfo),
pkg_list_(std::move(pkg_list)), write_type_(write_type),
auto_release_(auto_release) {}
PkgInfoParcelable::PkgInfoParcelable(
- int ret, std::vector<package_x *>&& pkg_list, bool auto_release)
+ int ret, std::vector<std::shared_ptr<package_x>>&& pkg_list,
+ bool auto_release)
: AbstractParcelable(0, ParcelableType::PkgInfo, ret),
- pkg_list_(std::move(pkg_list)), write_type_(WriteType::None),
+ pkg_list_(std::move(pkg_list)), write_type_(PkgWriteType::None),
auto_release_(auto_release) {}
PkgInfoParcelable::~PkgInfoParcelable() {
- if (!auto_release_)
- return;
-
- for (auto pkg : pkg_list_) {
- pkgmgrinfo_basic_free_package(pkg);
- }
}
-const std::vector<package_x *>& PkgInfoParcelable::GetPkgInfo() {
+const std::vector<std::shared_ptr<package_x>>& PkgInfoParcelable::GetPkgInfo() {
return pkg_list_;
}
-std::vector<package_x *> PkgInfoParcelable::ExtractPkgInfo() {
+std::vector<std::shared_ptr<package_x>> PkgInfoParcelable::ExtractPkgInfo() {
return std::move(pkg_list_);
}
-WriteType PkgInfoParcelable::GetWriteType() {
+PkgWriteType PkgInfoParcelable::GetWriteType() {
return write_type_;
}
void PkgInfoParcelable::WriteToParcel(tizen_base::Parcel* parcel) const {
AbstractParcelable::WriteToParcel(parcel);
- WriteInt(parcel, write_type_);
+ WriteInt(parcel, static_cast<int>(write_type_));
WriteInt(parcel, pkg_list_.size());
- for (auto pkg : pkg_list_) {
- WritePackage(parcel, pkg);
- }
+ for (auto& pkg : pkg_list_)
+ WritePackage(parcel, pkg.get());
}
void PkgInfoParcelable::ReadFromParcel(tizen_base::Parcel* parcel) {
AbstractParcelable::ReadFromParcel(parcel);
ReadInt(parcel, &write_type);
- write_type_ = static_cast<WriteType>(write_type);
+ write_type_ = static_cast<PkgWriteType>(write_type);
ReadInt(parcel, &len);
- for (int i = 0; i < len ; ++i) {
- pkg_list_.emplace_back(ReadPackage(parcel));
- }
+ for (int i = 0; i < len ; ++i)
+ pkg_list_.emplace_back(ReadPackage(parcel), [] (package_x*) -> void {});
}
} // namespace parcel