diff options
author | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2011-07-29 01:21:35 +0300 |
---|---|---|
committer | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2011-08-04 20:57:31 +0300 |
commit | 90b891874fd0d699b17893efd8abeadefeb201ec (patch) | |
tree | cc1c0fd059a25651b35301352bcb2b9cef75665c /osinfo/osinfo_os.c | |
parent | a030d590545b5e8c43b027b6a9576cb4613a065d (diff) | |
download | libosinfo-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.c | 37 |
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 |