On Thu, Nov 1, 2018 at 1:45 PM Fabiano Fidêncio <fidencio@xxxxxxxxxx> wrote: > > Let's introduce the needed APIs on os side to deal will the images. > For now, there's no info being loaded as the loader part depends on one > of these APIs. > > https://gitlab.com/libosinfo/osinfo-db/issues/10 > > Signed-off-by: Fabiano Fidêncio <fidencio@xxxxxxxxxx> > --- > osinfo/osinfo_os.c | 37 +++++++++++++++++++++++++++++++++++++ > osinfo/osinfo_os.h | 4 ++++ > 2 files changed, 41 insertions(+) > > diff --git a/osinfo/osinfo_os.c b/osinfo/osinfo_os.c > index 4f74331..6e12a06 100644 > --- a/osinfo/osinfo_os.c > +++ b/osinfo/osinfo_os.c > @@ -52,6 +52,7 @@ struct _OsinfoOsPrivate > > OsinfoMediaList *medias; > OsinfoTreeList *trees; > + OsinfoImageList *images; > OsinfoOsVariantList *variants; > OsinfoResourcesList *minimum; > OsinfoResourcesList *recommended; > @@ -116,6 +117,7 @@ osinfo_os_finalize(GObject *object) > g_list_free(os->priv->deviceLinks); > g_object_unref(os->priv->medias); > g_object_unref(os->priv->trees); > + g_object_unref(os->priv->images); > g_object_unref(os->priv->variants); > g_object_unref(os->priv->minimum); > g_object_unref(os->priv->recommended); > @@ -181,6 +183,7 @@ osinfo_os_init(OsinfoOs *os) > os->priv->deviceLinks = NULL; > os->priv->medias = osinfo_medialist_new(); > os->priv->trees = osinfo_treelist_new(); > + os->priv->images = osinfo_imagelist_new(); > os->priv->variants = osinfo_os_variantlist_new(); > os->priv->minimum = osinfo_resourceslist_new(); > os->priv->recommended = osinfo_resourceslist_new(); > @@ -494,6 +497,40 @@ void osinfo_os_add_tree(OsinfoOs *os, OsinfoTree *tree) > osinfo_list_add(OSINFO_LIST(os->priv->trees), OSINFO_ENTITY(tree)); > } > > +/** > + * osinfo_os_get_image_list: > + * @os: an operating system > + * > + * Get all installed images associated with operating system @os. > + * > + * Returns: (transfer full): A list of images > + */ > +OsinfoImageList *osinfo_os_get_image_list(OsinfoOs *os) > +{ > + g_return_val_if_fail(OSINFO_IS_OS(os), NULL); > + > + OsinfoImageList *newList = osinfo_imagelist_new(); > + > + osinfo_list_add_all(OSINFO_LIST(newList), OSINFO_LIST(os->priv->images)); > + > + return newList; > +} > + > +/** > + * osinfo_os_add_image: > + * @os: an operating system > + * @image: (transfer none): the image to add > + * > + * Adds an installed image @image to operating system @os. > + */ > +void osinfo_os_add_image(OsinfoOs *os, OsinfoImage *image) > +{ > + g_return_if_fail(OSINFO_IS_OS(os)); > + g_return_if_fail(OSINFO_IS_IMAGE(image)); > + > + osinfo_list_add(OSINFO_LIST(os->priv->images), OSINFO_ENTITY(image)); > +} > + > /** > * osinfo_os_get_variant_list: > * @os: an operating system > diff --git a/osinfo/osinfo_os.h b/osinfo/osinfo_os.h > index 96bd6e3..d51bbb4 100644 > --- a/osinfo/osinfo_os.h > +++ b/osinfo/osinfo_os.h > @@ -34,6 +34,8 @@ > #include <osinfo/osinfo_tree.h> > #include <osinfo/osinfo_resources.h> > #include <osinfo/osinfo_resourceslist.h> > +#include <osinfo/osinfo_image.h> > +#include <osinfo/osinfo_imagelist.h> > > #ifndef __OSINFO_OS_H__ > #define __OSINFO_OS_H__ > @@ -116,6 +118,8 @@ OsinfoMediaList *osinfo_os_get_media_list(OsinfoOs *os); > void osinfo_os_add_media(OsinfoOs *os, OsinfoMedia *media); > OsinfoTreeList *osinfo_os_get_tree_list(OsinfoOs *os); > void osinfo_os_add_tree(OsinfoOs *os, OsinfoTree *tree); > +OsinfoImageList *osinfo_os_get_image_list(OsinfoOs *os); > +void osinfo_os_add_image(OsinfoOs *os, OsinfoImage *image); > OsinfoOsVariantList *osinfo_os_get_variant_list(OsinfoOs *os); > void osinfo_os_add_variant(OsinfoOs *os, OsinfoOsVariant *variant); > OsinfoResourcesList *osinfo_os_get_minimum_resources(OsinfoOs *os); > -- > 2.19.1 > And this patch will need the following fixup: Author: Fabiano Fidêncio <fidencio@xxxxxxxxxx> AuthorDate: Thu Nov 1 15:48:55 2018 +0100 Commit: Fabiano Fidêncio <fidencio@xxxxxxxxxx> CommitDate: Thu Nov 1 15:50:36 2018 +0100 fixup! os: Introduce APIs to deal with images --- osinfo/libosinfo.syms | 3 +++ 1 file changed, 3 insertions(+) diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms index aeb74a7..7711bce 100644 --- a/osinfo/libosinfo.syms +++ b/osinfo/libosinfo.syms @@ -541,6 +541,9 @@ LIBOSINFO_1.3.0 { osinfo_imagelist_get_type; osinfo_imagelist_new; + + osinfo_os_add_image; + osinfo_os_get_image_list; } LIBOSINFO_0.2.13; /* Symbols in next release... _______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo