static GVariant * gkd_secret_collection_skeleton_get_property_dbus (GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GError **error, gpointer user_data) { GkdSecretCollectionSkeleton *self = (GkdSecretCollectionSkeleton *) user_data; GckObject *object; GVariant *variant; object = secret_objects_lookup_gck_object_for_path (self->objects, sender, object_path, error); if (!object) return FALSE; if (g_strcmp0 (property_name, "Items") == 0) variant = gkd_secret_objects_append_item_paths (self->objects, sender, object_path); else variant = object_property_get (self->objects, object, property_name, error); g_object_unref (object); return variant; }
void gkd_secret_objects_emit_collection_locked (GkdSecretObjects *self, GckObject *collection) { gchar *collection_path; GkdExportedCollection *skeleton; GVariant *value; GError *error = NULL; collection_path = object_path_for_collection (collection); gkd_secret_objects_foreach_item (self, NULL, collection_path, on_each_item_emit_locked, NULL); skeleton = g_hash_table_lookup (self->collections_to_skeletons, collection_path); if (skeleton == NULL) { g_warning ("setting locked state on collection %s, but no skeleton found", collection_path); return; } value = object_property_get (self, collection, "Locked", &error); if (!value) { g_warning ("setting locked state on item %s, but no property value: %s", collection_path, error->message); g_error_free (error); return; } gkd_exported_collection_set_locked (skeleton, g_variant_get_boolean (value)); g_variant_unref (value); gkd_secret_service_emit_collection_changed (self->service, collection_path); g_free (collection_path); }
static void on_each_item_emit_locked (GkdSecretObjects *self, const gchar *path, GckObject *object, gpointer user_data) { GkdExportedItem *skeleton; GVariant *value; GError *error = NULL; skeleton = g_hash_table_lookup (self->items_to_skeletons, path); if (skeleton == NULL) { g_warning ("setting locked state on item %s, but no skeleton found", path); return; } value = object_property_get (self, object, "Locked", &error); if (!value) { g_warning ("setting locked state on item %s, but no property value: %s", path, error->message); g_error_free (error); return; } gkd_exported_item_set_locked (skeleton, g_variant_get_boolean (value)); g_variant_unref (value); gkd_secret_objects_emit_item_changed (self, object); }
static void balloon_ccw_stats_get_all(Object *obj, struct Visitor *v, void *opaque, const char *name, Error **errp) { VirtIOBalloonCcw *dev = opaque; object_property_get(OBJECT(&dev->vdev), v, "guest-stats", errp); }
QObject *object_property_get_qobject(Object *obj, const char *name, Error **errp) { QObject *ret = NULL; Error *local_err = NULL; Visitor *v; v = qobject_output_visitor_new(&ret); object_property_get(obj, v, name, &local_err); if (!local_err) { visit_complete(v, &ret); } error_propagate(errp, local_err); visit_free(v); return ret; }
QObject *object_property_get_qobject(struct uc_struct *uc, Object *obj, const char *name, Error **errp) { QObject *ret = NULL; Error *local_err = NULL; QmpOutputVisitor *mo; mo = qmp_output_visitor_new(); object_property_get(uc, obj, qmp_output_get_visitor(mo), name, &local_err); if (!local_err) { ret = qmp_output_get_qobject(mo); } error_propagate(errp, local_err); qmp_output_visitor_cleanup(mo); return ret; }
static GVariant * gkd_secret_item_skeleton_get_property_dbus (GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GError **error, gpointer user_data) { GkdSecretItemSkeleton *self = (GkdSecretItemSkeleton *) user_data; GckObject *object; GVariant *variant; object = secret_objects_lookup_gck_object_for_path (self->objects, sender, object_path, error); if (!object) return NULL; variant = object_property_get (self->objects, object, property_name, error); g_object_unref (object); return variant; }