[libvirt] [libvirt-glib 2/4] Implement gvir_config_domain_disk_[gs]et_driver()
Zeeshan Ali (Khattak)
zeeshanak at gnome.org
Thu Jan 16 19:48:31 UTC 2014
On Fri, Dec 6, 2013 at 11:13 AM, Christophe Fergeau <cfergeau at redhat.com> wrote:
> ---
> libvirt-gconfig/libvirt-gconfig-domain-disk.c | 42 +++++++++++++++++++
> libvirt-gconfig/libvirt-gconfig-domain-disk.h | 58 +++++++++++++++------------
> libvirt-gconfig/libvirt-gconfig.sym | 3 ++
> 3 files changed, 77 insertions(+), 26 deletions(-)
>
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-disk.c b/libvirt-gconfig/libvirt-gconfig-domain-disk.c
> index db0416a..85d2bea 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain-disk.c
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-disk.c
> @@ -390,3 +390,45 @@ gvir_config_domain_disk_set_readonly(GVirConfigDomainDisk *disk,
> } else
> gvir_config_object_delete_child(GVIR_CONFIG_OBJECT(disk), "readonly", NULL);
> }
> +
> +
> +/**
> + * gvir_config_domain_disk_set_driver:
> + * @disk: a #GVirConfigDomainDisk
> + * @driver: (allow-none): a #GVirConfigDomainDiskDriver
> + *
> + * Uses @driver as the driver configuration for @disk.
> + */
> +void gvir_config_domain_disk_set_driver(GVirConfigDomainDisk *disk,
> + GVirConfigDomainDiskDriver *driver)
> +{
> + g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk));
> + g_return_if_fail(driver == NULL || GVIR_CONFIG_IS_DOMAIN_DISK_DRIVER(driver));
> +
> + gvir_config_object_attach_replace(GVIR_CONFIG_OBJECT(disk),
> + "driver",
> + GVIR_CONFIG_OBJECT(driver));
> +}
> +
> +
> +/**
> + * gvir_config_domain_disk_get_driver:
> + * @disk: a #GVirConfigDomainDisk
> + *
> + * Gets the driver configuration for @disk.
> + *
> + * Returns: (transfer full): A #GVirConfigDomainDiskDriver. The returned
> + * object should be unreffed with g_object_unref() when no longer needed.
> + */
> +GVirConfigDomainDiskDriver *gvir_config_domain_disk_get_driver(GVirConfigDomainDisk *disk)
> +{
> + GVirConfigObject *object;
> +
> + g_return_val_if_fail(GVIR_CONFIG_IS_DOMAIN_DISK(disk), NULL);
> +
> + object = gvir_config_object_get_child_with_type(GVIR_CONFIG_OBJECT(disk),
> + "driver",
> + GVIR_CONFIG_TYPE_DOMAIN_DISK_DRIVER);
> +
> + return GVIR_CONFIG_DOMAIN_DISK_DRIVER(object);
> +}
> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-disk.h b/libvirt-gconfig/libvirt-gconfig-domain-disk.h
> index 3b82eb5..a28f243 100644
> --- a/libvirt-gconfig/libvirt-gconfig-domain-disk.h
> +++ b/libvirt-gconfig/libvirt-gconfig-domain-disk.h
> @@ -29,6 +29,35 @@
>
> G_BEGIN_DECLS
>
> +/* These enum definitions are needed by libvirt-gconfig-domain-disk-driver.h */
Why not just move these enums to that header then?
> +typedef enum {
> + GVIR_CONFIG_DOMAIN_DISK_CACHE_DEFAULT,
> + GVIR_CONFIG_DOMAIN_DISK_CACHE_NONE,
> + GVIR_CONFIG_DOMAIN_DISK_CACHE_WRITETHROUGH,
> + GVIR_CONFIG_DOMAIN_DISK_CACHE_WRITEBACK,
> + GVIR_CONFIG_DOMAIN_DISK_CACHE_DIRECTSYNC,
> + GVIR_CONFIG_DOMAIN_DISK_CACHE_UNSAFE
> +} GVirConfigDomainDiskCacheType;
> +
> +typedef enum {
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_RAW,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_DIR,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_BOCHS,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_CLOOP,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_COW,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_DMG,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_ISO,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_QCOW,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_QCOW2,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_QED,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_VMDK,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_VPC,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_FAT,
> + GVIR_CONFIG_DOMAIN_DISK_FORMAT_VHD,
> +} GVirConfigDomainDiskFormat;
> +
Looks good otherwise.
More information about the libvir-list
mailing list