[libvirt] [libvirt-glib 4/6] Add 'config' property to GVirDomainDevice
Christophe Fergeau
cfergeau at redhat.com
Thu Mar 1 10:38:00 UTC 2012
ACK
On Thu, Mar 01, 2012 at 12:15:40AM +0200, Zeeshan Ali (Khattak) wrote:
> From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>
>
> GVirDomainDevice should have an associated GVirConfigDomainDevice.
> ---
> libvirt-gobject/libvirt-gobject-domain-device.c | 33 +++++++++++++++++++++++
> libvirt-gobject/libvirt-gobject-domain-device.h | 1 +
> libvirt-gobject/libvirt-gobject.sym | 1 +
> 3 files changed, 35 insertions(+), 0 deletions(-)
>
> diff --git a/libvirt-gobject/libvirt-gobject-domain-device.c b/libvirt-gobject/libvirt-gobject-domain-device.c
> index 750c8d9..35d4855 100644
> --- a/libvirt-gobject/libvirt-gobject-domain-device.c
> +++ b/libvirt-gobject/libvirt-gobject-domain-device.c
> @@ -37,6 +37,7 @@
> struct _GVirDomainDevicePrivate
> {
> GVirDomain *domain;
> + GVirConfigDomainDevice *config;
> };
>
> G_DEFINE_ABSTRACT_TYPE(GVirDomainDevice, gvir_domain_device, G_TYPE_OBJECT);
> @@ -44,6 +45,7 @@ G_DEFINE_ABSTRACT_TYPE(GVirDomainDevice, gvir_domain_device, G_TYPE_OBJECT);
> enum {
> PROP_0,
> PROP_DOMAIN,
> + PROP_CONFIG,
> };
>
> static void gvir_domain_device_get_property(GObject *object,
> @@ -59,6 +61,10 @@ static void gvir_domain_device_get_property(GObject *object,
> g_value_set_object(value, priv->domain);
> break;
>
> + case PROP_CONFIG:
> + g_value_set_object(value, priv->config);
> + break;
> +
> default:
> G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
> }
> @@ -79,6 +85,11 @@ static void gvir_domain_device_set_property(GObject *object,
> priv->domain = g_value_dup_object(value);
> break;
>
> + case PROP_CONFIG:
> + g_clear_object(&priv->config);
> + priv->config = g_value_dup_object(value);
> + break;
> +
> default:
> G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
> }
> @@ -93,6 +104,7 @@ static void gvir_domain_device_finalize(GObject *object)
> g_debug("Finalize GVirDomainDevice=%p", self);
>
> g_clear_object(&priv->domain);
> + g_clear_object(&priv->config);
>
> G_OBJECT_CLASS(gvir_domain_device_parent_class)->finalize(object);
> }
> @@ -115,6 +127,16 @@ static void gvir_domain_device_class_init(GVirDomainDeviceClass *klass)
> G_PARAM_CONSTRUCT_ONLY |
> G_PARAM_STATIC_STRINGS));
>
> + g_object_class_install_property(object_class,
> + PROP_CONFIG,
> + g_param_spec_object("config",
> + "Config",
> + "The configuration",
> + GVIR_CONFIG_TYPE_DOMAIN_DEVICE,
> + G_PARAM_READWRITE |
> + G_PARAM_CONSTRUCT_ONLY |
> + G_PARAM_STATIC_STRINGS));
> +
> g_type_class_add_private(klass, sizeof(GVirDomainDevicePrivate));
> }
>
> @@ -145,3 +167,14 @@ GVirDomain *gvir_domain_device_get_domain(GVirDomainDevice *device)
> {
> return g_object_ref (device->priv->domain);
> }
> +
> +/**
> + * gvir_domain_device_get_config:
> + * @device: the domain device
> + *
> + * Returns: (transfer full): the config
> + */
> +GVirConfigDomainDevice *gvir_domain_device_get_config(GVirDomainDevice *device)
> +{
> + return g_object_ref (device->priv->config);
> +}
> diff --git a/libvirt-gobject/libvirt-gobject-domain-device.h b/libvirt-gobject/libvirt-gobject-domain-device.h
> index 98acc2d..b308477 100644
> --- a/libvirt-gobject/libvirt-gobject-domain-device.h
> +++ b/libvirt-gobject/libvirt-gobject-domain-device.h
> @@ -61,6 +61,7 @@ struct _GVirDomainDeviceClass
>
> GType gvir_domain_device_get_type(void);
> GVirDomain *gvir_domain_device_get_domain(GVirDomainDevice *device);
> +GVirConfigDomainDevice *gvir_domain_device_get_config(GVirDomainDevice *device);
>
> G_END_DECLS
>
> diff --git a/libvirt-gobject/libvirt-gobject.sym b/libvirt-gobject/libvirt-gobject.sym
> index 0097692..d6999dc 100644
> --- a/libvirt-gobject/libvirt-gobject.sym
> +++ b/libvirt-gobject/libvirt-gobject.sym
> @@ -34,6 +34,7 @@ LIBVIRT_GOBJECT_0.0.4 {
>
> gvir_domain_device_get_type;
> gvir_domain_device_get_domain;
> + gvir_domain_device_get_config;
>
> gvir_domain_disk_get_type;
> gvir_domain_disk_stats_get_type;
> --
> 1.7.7.6
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120301/a27a05c5/attachment-0001.sig>
More information about the libvir-list
mailing list