[libvirt] [libvirt-glib] gconfig: Add API to set domain/pm tree
Zeeshan Ali (Khattak)
zeeshanak at gnome.org
Wed Oct 10 13:51:03 UTC 2012
On Wed, Oct 10, 2012 at 1:12 PM, Christophe Fergeau <cfergeau at redhat.com> wrote:
> On Tue, Oct 09, 2012 at 11:04:46PM +0300, Zeeshan Ali (Khattak) wrote:
>> From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>
>>
>> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-power-management.c b/libvirt-gconfig/libvirt-gconfig-domain-power-management.c
>> new file mode 100644
>> index 0000000..c6b1962
>> --- /dev/null
>> +++ b/libvirt-gconfig/libvirt-gconfig-domain-power-management.c
>> @@ -0,0 +1,101 @@
>> +/*
>> + * libvirt-gconfig-domain-power-management.c: libvirt domain power management configuration
>> + *
>> + * Copyright (C) 2012 Red Hat, Inc.
>> + *
>> + * This library is free software; you can redistribute it and/or
>> + * modify it under the terms of the GNU Lesser General Public
>> + * License as published by the Free Software Foundation; either
>> + * version 2.1 of the License, or (at your option) any later version.
>> + *
>> + * This library is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
>> + * Lesser General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU Lesser General Public
>> + * License along with this library; if not, write to the Free Software
>> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
>> + *
>> + * Authors:
>> + *
>> + * Zeeshan Ali (Khattak) <zeeshanak at gnome.org>
>> + * Christophe Fergeau <cfergeau at redhat.com>
>> + */
>> +
>> +#include <config.h>
>> +
>> +#include "libvirt-gconfig/libvirt-gconfig.h"
>> +#include "libvirt-gconfig/libvirt-gconfig-private.h"
>> +
>> +#define GVIR_CONFIG_DOMAIN_POWER_MANAGEMENT_GET_PRIVATE(obj) \
>> + (G_TYPE_INSTANCE_GET_PRIVATE((obj), \
>> + GVIR_CONFIG_TYPE_DOMAIN_POWER_MANAGEMENT, \
>> + GVirConfigDomainPowerManagementPrivate))
>> +
>> +struct _GVirConfigDomainPowerManagementPrivate
>> +{
>> + gboolean unused;
>> +};
>> +
>> +G_DEFINE_TYPE(GVirConfigDomainPowerManagement,
>> + gvir_config_domain_power_management,
>> + GVIR_CONFIG_TYPE_OBJECT);
>> +
>> +static void gvir_config_domain_power_management_class_init
>> + (GVirConfigDomainPowerManagementClass *klass)
>> +{
>> + g_type_class_add_private(klass, sizeof(GVirConfigDomainPowerManagementPrivate));
>> +}
>> +
>> +
>> +static void
>> +gvir_config_domain_power_management_init(GVirConfigDomainPowerManagement *pm)
>> +{
>> + g_debug("Init GVirConfigDomainPowerManagement=%p", pm);
>> +
>> + pm->priv = GVIR_CONFIG_DOMAIN_POWER_MANAGEMENT_GET_PRIVATE(pm);
>> +}
>> +
>> +
>> +GVirConfigDomainPowerManagement *gvir_config_domain_power_management_new(void)
>> +{
>> + GVirConfigObject *object;
>> +
>> + object = gvir_config_object_new(GVIR_CONFIG_TYPE_DOMAIN_POWER_MANAGEMENT,
>> + "pm", NULL);
>> + return GVIR_CONFIG_DOMAIN_POWER_MANAGEMENT(object);
>> +}
>> +
>> +GVirConfigDomainPowerManagement *
>> +gvir_config_domain_power_management_new_from_xml(const gchar *xml,
>> + GError **error)
>> +{
>> + GVirConfigObject *object;
>> +
>> + object = gvir_config_object_new_from_xml(GVIR_CONFIG_TYPE_DOMAIN_POWER_MANAGEMENT,
>> + "pm", NULL, xml, error);
>> + return GVIR_CONFIG_DOMAIN_POWER_MANAGEMENT(object);
>> +}
>> +
>> +void gvir_config_domain_power_management_set_ram_suspend_enabled
>> + (GVirConfigDomainPowerManagement *pm, gboolean enabled)
>
> It's generally indented as
> void gvir_config_domain_power_management_set_ram_suspend_enabled(GVirConfigDomainPowerManagement *pm,
> gboolean enabled)
> in other files even if the first line is more than 80 chars
Though it generally is but I wonder which rule to follow in this case.
I usually put more stress on max columns rule than any other because
the implicit assumption in the rule is that N is the size of the
screen/terminal/editor.
>> +{
>> + g_return_if_fail(GVIR_CONFIG_IS_DOMAIN_POWER_MANAGEMENT(pm));
>> +
>> + gvir_config_object_add_child_with_attribute(GVIR_CONFIG_OBJECT(pm),
>> + "suspend-to-ram",
>> + "enabled",
>> + enabled? "yes" : "no");
>
> We can probably add a gvir_config_object_add_child_with_attribute_type at
> some point where you'd pass G_TYPE_BOOLEAN and 'enabled', and this would do
> the transformation for you. We can add that next time this would be useful.
I had the same train of thoughts. :)
>> diff --git a/libvirt-gconfig/libvirt-gconfig-domain-power-management.h b/libvirt-gconfig/libvirt-gconfig-domain-power-management.h
>> new file mode 100644
>> index 0000000..1d9b3b7
>> --- /dev/null
>> +++ b/libvirt-gconfig/libvirt-gconfig-domain-power-management.h
>> @@ -0,0 +1,76 @@
>> +/*
>> + * libvirt-gconfig-domain-power-management.h: libvirt domain power management configuration
>> + *
>> + * Copyright (C) 2012 Red Hat, Inc.
>> + *
>> + * This library is free software; you can redistribute it and/or
>> + * modify it under the terms of the GNU Lesser General Public
>> + * License as published by the Free Software Foundation; either
>> + * version 2.1 of the License, or (at your option) any later version.
>> + *
>> + * This library is distributed in the hope that it will be useful,
>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
>> + * Lesser General Public License for more details.
>> + *
>> + * You should have received a copy of the GNU Lesser General Public
>> + * License along with this library; if not, write to the Free Software
>> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
>> + *
>> + * Zeeshan Ali (Khattak) <zeeshanak at gnome.org>
>> + * Christophe Fergeau <cfergeau at redhat.com>
>> + */
>> +
>> +#if !defined(__LIBVIRT_GCONFIG_H__) && !defined(LIBVIRT_GCONFIG_BUILD)
>> +#error "Only <libvirt-gconfig/libvirt-gconfig.h> can be included directly."
>> +#endif
>> +
>> +#ifndef __LIBVIRT_GCONFIG_DOMAIN_POWER_MANAGEMENT_H__
>> +#define __LIBVIRT_GCONFIG_DOMAIN_POWER_MANAGEMENT_H__
>> +
>> +#include <libvirt-gconfig/libvirt-gconfig-domain-timer.h>
>
> I don't think we need to include timer?
C&P mistake.
--
Regards,
Zeeshan Ali (Khattak)
FSF member#5124
More information about the libvir-list
mailing list