summaryrefslogtreecommitdiff
path: root/osinfo/osinfo_os.c
diff options
context:
space:
mode:
authorZeeshan Ali (Khattak) <zeeshanak@gnome.org>2011-07-29 01:21:35 +0300
committerZeeshan Ali (Khattak) <zeeshanak@gnome.org>2011-08-04 20:57:31 +0300
commit90b891874fd0d699b17893efd8abeadefeb201ec (patch)
treecc1c0fd059a25651b35301352bcb2b9cef75665c /osinfo/osinfo_os.c
parenta030d590545b5e8c43b027b6a9576cb4613a065d (diff)
downloadlibosinfo-90b891874fd0d699b17893efd8abeadefeb201ec.tar.gz
Add API to add/list medias to/from OS
Diffstat (limited to 'osinfo/osinfo_os.c')
-rw-r--r--osinfo/osinfo_os.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/osinfo/osinfo_os.c b/osinfo/osinfo_os.c
index b0b6e4e..117e000 100644
--- a/osinfo/osinfo_os.c
+++ b/osinfo/osinfo_os.c
@@ -44,6 +44,8 @@ struct _OsinfoOsPrivate
{
// Value: List of device_link structs
GList *deviceLinks;
+
+ OsinfoMediaList *medias;
};
struct _OsinfoOsDeviceLink {
@@ -136,6 +138,7 @@ osinfo_os_init (OsinfoOs *os)
os->priv = priv = OSINFO_OS_GET_PRIVATE(os);
os->priv->deviceLinks = NULL;
+ os->priv->medias = osinfo_medialist_new ();
}
/**
@@ -259,6 +262,40 @@ const gchar *osinfo_os_get_family(OsinfoOs *os)
return osinfo_entity_get_param_value(OSINFO_ENTITY(os), "family");
}
+/**
+ * osinfo_os_get_media_list:
+ * @os: an operating system
+ *
+ * Get all installation medias associated with operating system @os.
+ *
+ * Returns: (transfer full): A list of medias
+ */
+OsinfoMediaList *osinfo_os_get_media_list(OsinfoOs *os)
+{
+ g_return_val_if_fail(OSINFO_IS_OS(os), NULL);
+
+ OsinfoMediaList *newList = osinfo_medialist_new();
+
+ osinfo_list_add_all(OSINFO_LIST(newList), OSINFO_LIST(os->priv->medias));
+
+ return newList;
+}
+
+/**
+ * osinfo_os_add_media:
+ * @os: an operating system
+ * @media: (transfer none): the media to add
+ *
+ * Adds installation media @media to operating system @os.
+ */
+void osinfo_os_add_media(OsinfoOs *os, OsinfoMedia *media)
+{
+ g_return_if_fail(OSINFO_IS_OS(os));
+ g_return_if_fail(OSINFO_IS_MEDIA(media));
+
+ osinfo_list_add(OSINFO_LIST(os->priv->medias), OSINFO_ENTITY(media));
+}
+
/*
* Local variables:
* indent-tabs-mode: nil