}
}
+void PkgInfoParcelable::WriteMetadata(tizen_base::Parcel* parcel,
+ GList* metadata) const {
+ WriteInt(parcel, g_list_length(metadata));
+
+ for (GList* tmp = metadata; tmp; tmp = tmp->next) {
+ metadata_x* ptr = reinterpret_cast<metadata_x*>(tmp->data);
+ WriteString(parcel, ptr->key);
+ WriteString(parcel, ptr->value);
+ }
+}
+
void PkgInfoParcelable::WritePackage(tizen_base::Parcel* parcel,
package_x* package) const {
WriteString(parcel, package->for_all_users);
WriteDependencies(parcel, package->dependencies);
WritePlugin(parcel, package->plugin);
WriteResAllowedPackages(parcel, package->res_allowed_packages);
+ WriteMetadata(parcel, package->metadata);
}
void PkgInfoParcelable::ReadIcon(tizen_base::Parcel* parcel, GList** list) {
}
}
+void PkgInfoParcelable::ReadMetadata(tizen_base::Parcel* parcel, GList** list) {
+ int size = 0;
+ ReadInt(parcel, &size);
+
+ for (int i = 0; i < size; ++i) {
+ metadata_x* metadata =
+ reinterpret_cast<metadata_x*>(calloc(1, sizeof(metadata_x)));
+ ReadString(parcel, &metadata->key);
+ ReadString(parcel, &metadata->value);
+
+ *list = g_list_append(*list, metadata);
+ }
+}
+
package_x* PkgInfoParcelable::ReadPackage(tizen_base::Parcel* parcel) {
package_x* package =
reinterpret_cast<package_x*>(calloc(1, sizeof(package_x)));
ReadDependencies(parcel, &package->dependencies);
ReadPlugin(parcel, &package->plugin);
ReadResAllowedPackages(parcel, &package->res_allowed_packages);
+ ReadMetadata(parcel, &package->metadata);
return package;
}