summaryrefslogtreecommitdiff
path: root/osinfo/osinfo_os.c
diff options
context:
space:
mode:
authorZeeshan Ali (Khattak) <zeeshanak@gnome.org>2011-09-06 19:00:27 +0300
committerZeeshan Ali (Khattak) <zeeshanak@gnome.org>2011-09-15 16:25:10 +0300
commitbea9dc4181d02fa4c79d7f6a838ac8fea1d57fd1 (patch)
treec5b37c0869671c8e980982e0148d2dbcda55fc01 /osinfo/osinfo_os.c
parent1bfb61cf0bcedbfb1fc6e67949ed47763c7fc606 (diff)
downloadlibosinfo-bea9dc4181d02fa4c79d7f6a838ac8fea1d57fd1.tar.gz
API to add/list resources to/from Os
Add API to add/list minimum and recommended resources to/from Os.
Diffstat (limited to 'osinfo/osinfo_os.c')
-rw-r--r--osinfo/osinfo_os.c75
1 files changed, 75 insertions, 0 deletions
diff --git a/osinfo/osinfo_os.c b/osinfo/osinfo_os.c
index 117e000..bc013aa 100644
--- a/osinfo/osinfo_os.c
+++ b/osinfo/osinfo_os.c
@@ -46,6 +46,8 @@ struct _OsinfoOsPrivate
GList *deviceLinks;
OsinfoMediaList *medias;
+ OsinfoResourcesList *minimum;
+ OsinfoResourcesList *recommended;
};
struct _OsinfoOsDeviceLink {
@@ -139,6 +141,8 @@ osinfo_os_init (OsinfoOs *os)
os->priv->deviceLinks = NULL;
os->priv->medias = osinfo_medialist_new ();
+ os->priv->minimum = osinfo_resourceslist_new ();
+ os->priv->recommended = osinfo_resourceslist_new ();
}
/**
@@ -296,6 +300,77 @@ void osinfo_os_add_media(OsinfoOs *os, OsinfoMedia *media)
osinfo_list_add(OSINFO_LIST(os->priv->medias), OSINFO_ENTITY(media));
}
+/**
+ * osinfo_os_get_minimum_resources:
+ * @os: an operating system
+ *
+ * Get the list of minimum required resources for the operating system @os.
+ *
+ * Returns: (transfer full): A list of resources
+ */
+OsinfoResourcesList *osinfo_os_get_minimum_resources(OsinfoOs *os)
+{
+ g_return_val_if_fail(OSINFO_IS_OS(os), NULL);
+
+ OsinfoResourcesList *newList = osinfo_resourceslist_new();
+
+ osinfo_list_add_all(OSINFO_LIST(newList), OSINFO_LIST(os->priv->minimum));
+
+ return newList;
+}
+
+/**
+ * osinfo_os_get_recommended_resources:
+ * @os: an operating system
+ *
+ * Get the list of recommended resources for the operating system @os.
+ *
+ * Returns: (transfer full): A list of resources
+ */
+OsinfoResourcesList *osinfo_os_get_recommended_resources(OsinfoOs *os)
+{
+ g_return_val_if_fail(OSINFO_IS_OS(os), NULL);
+
+ OsinfoResourcesList *newList = osinfo_resourceslist_new();
+
+ osinfo_list_add_all(OSINFO_LIST(newList),
+ OSINFO_LIST(os->priv->recommended));
+
+ return newList;
+}
+
+/**
+ * osinfo_os_add_minimum_resources:
+ * @os: an operating system
+ * @resources: (transfer none): the resources to add
+ *
+ * Adds @resources to list of minimum resources of operating system @os.
+ */
+void osinfo_os_add_minimum_resources(OsinfoOs *os, OsinfoResources *resources)
+{
+ g_return_if_fail(OSINFO_IS_OS(os));
+ g_return_if_fail(OSINFO_IS_RESOURCES(resources));
+
+ osinfo_list_add(OSINFO_LIST(os->priv->minimum), OSINFO_ENTITY(resources));
+}
+
+/**
+ * osinfo_os_add_recommended_resources:
+ * @os: an operating system
+ * @resources: (transfer none): the resources to add
+ *
+ * Adds @resources to list of recommended resources of operating system @os.
+ */
+void osinfo_os_add_recommended_resources(OsinfoOs *os,
+ OsinfoResources *resources)
+{
+ g_return_if_fail(OSINFO_IS_OS(os));
+ g_return_if_fail(OSINFO_IS_RESOURCES(resources));
+
+ osinfo_list_add(OSINFO_LIST(os->priv->recommended),
+ OSINFO_ENTITY(resources));
+}
+
/*
* Local variables:
* indent-tabs-mode: nil