From: "Zeeshan Ali (Khattak)" <zeesha...@gnome.org> --- osinfo/osinfo_resources.c | 198 +++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 190 insertions(+), 8 deletions(-)
diff --git a/osinfo/osinfo_resources.c b/osinfo/osinfo_resources.c index d2b83d2..dda214e 100644 --- a/osinfo/osinfo_resources.c +++ b/osinfo/osinfo_resources.c @@ -30,6 +30,16 @@ G_DEFINE_TYPE (OsinfoResources, osinfo_resources, OSINFO_TYPE_ENTITY); +enum { + PROP_0, + + PROP_ARCHITECTURE, + PROP_CPU, + PROP_N_CPUS, + PROP_RAM, + PROP_STORAGE, +}; + #define OSINFO_RESOURCES_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \ OSINFO_TYPE_RESOURCES, \ @@ -79,14 +89,190 @@ osinfo_resources_finalize (GObject *object) G_OBJECT_CLASS (osinfo_resources_parent_class)->finalize (object); } +static void +osinfo_resources_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + OsinfoResources *resources = OSINFO_RESOURCES (object); + + switch (property_id) { + case PROP_ARCHITECTURE: + g_value_set_string (value, + osinfo_resources_get_architecture (resources)); + break; + + case PROP_N_CPUS: + g_value_set_int (value, + osinfo_resources_get_n_cpus (resources)); + break; + + case PROP_CPU: + g_value_set_int64 (value, + osinfo_resources_get_cpu (resources)); + break; + + case PROP_RAM: + g_value_set_int64 (value, + osinfo_resources_get_ram (resources)); + break; + + case PROP_STORAGE: + g_value_set_int64 (value, + osinfo_resources_get_storage (resources)); + break; + + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +osinfo_resources_set_property(GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + OsinfoResources *resources = OSINFO_RESOURCES (object); + + switch (property_id) { + case PROP_ARCHITECTURE: + osinfo_entity_set_param (OSINFO_ENTITY(resources), + OSINFO_RESOURCES_PROP_ARCHITECTURE, + g_value_get_string (value)); + break; + + case PROP_N_CPUS: + osinfo_resources_set_n_cpus (resources, g_value_get_int (value)); + break; + + case PROP_CPU: + osinfo_resources_set_cpu (resources, g_value_get_int64 (value)); + break; + + case PROP_RAM: + osinfo_resources_set_ram (resources, g_value_get_int64 (value)); + break; + + case PROP_STORAGE: + osinfo_resources_set_storage (resources, g_value_get_int64 (value)); + break; + + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + /* Init functions */ static void osinfo_resources_class_init (OsinfoResourcesClass *klass) { GObjectClass *g_klass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + g_klass->get_property = osinfo_resources_get_property; + g_klass->set_property = osinfo_resources_set_property; g_klass->finalize = osinfo_resources_finalize; g_type_class_add_private (klass, sizeof (OsinfoResourcesPrivate)); + + /** + * OsinfoResources::architecture: + * + * The target hardware architecture to which these resources applies. + */ + pspec = g_param_spec_string ("architecture", + "ARCHITECTURE", + "CPU Architecture", + NULL /* default value */, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (g_klass, + PROP_ARCHITECTURE, + pspec); + + /** + * OsinfoResources::cpu + * + * The CPU frequency in hertz (Hz). + */ + pspec = g_param_spec_int64 ("cpu", + "CPU", + "CPU frequency in hertz (Hz)", + -1, + G_MAXINT, + -1, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (g_klass, + PROP_CPU, + pspec); + + /** + * OsinfoResources::n-cpus + * + * The number of CPUs. + */ + pspec = g_param_spec_int ("n-cpus", + "N-CPUs", + "Number of CPUs", + -1, + G_MAXINT, + -1, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (g_klass, + PROP_N_CPUS, + pspec); + + /** + * OsinfoResources::ram + * + * The amount of Random Access Memory (RAM) in bytes. + */ + pspec = g_param_spec_int64 ("ram", + "RAM", + "Amount of Random Access Memory (RAM) in bytes", + -1, + G_MAXINT64, + -1, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (g_klass, + PROP_RAM, + pspec); + + /** + * OsinfoResources::storage + * + * The amount of storage space in bytes. + */ + pspec = g_param_spec_int64 ("storage", + "Storage", + "Amount of storage space in bytes", + -1, + G_MAXINT64, + -1, + G_PARAM_READWRITE | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property (g_klass, + PROP_STORAGE, + pspec); } static void @@ -101,14 +287,10 @@ OsinfoResources *osinfo_resources_new(const gchar *id, { OsinfoResources *resources; - resources = g_object_new(OSINFO_TYPE_RESOURCES, - "id", id, - NULL); - - if (architecture != NULL) - osinfo_entity_set_param(OSINFO_ENTITY(resources), - OSINFO_RESOURCES_PROP_ARCHITECTURE, - architecture); + resources = g_object_new (OSINFO_TYPE_RESOURCES, + "id", id, + "architecture", architecture, + NULL); return resources; } -- 1.7.6.2 _______________________________________________ virt-tools-list mailing list virt-tools-list@redhat.com https://www.redhat.com/mailman/listinfo/virt-tools-list