On Thu, Nov 28, 2013 at 01:07:12AM +0000, Zeeshan Ali (Khattak) wrote: > Just a OsinfoList subclass that is meant to contain Variant objects. > --- > osinfo/Makefile.am | 2 + > osinfo/libosinfo.syms | 3 ++ > osinfo/osinfo.h | 1 + > osinfo/osinfo_os_variantlist.c | 89 ++++++++++++++++++++++++++++++++++++++++++ > osinfo/osinfo_os_variantlist.h | 76 ++++++++++++++++++++++++++++++++++++ > 5 files changed, 171 insertions(+) > create mode 100644 osinfo/osinfo_os_variantlist.c > create mode 100644 osinfo/osinfo_os_variantlist.h > > diff --git a/osinfo/Makefile.am b/osinfo/Makefile.am > index 12ec59d..e969f45 100644 > --- a/osinfo/Makefile.am > +++ b/osinfo/Makefile.am > @@ -91,6 +91,7 @@ OSINFO_HEADER_FILES = \ > osinfo_tree.h \ > osinfo_treelist.h \ > osinfo_os_variant.h \ > + osinfo_os_variantlist.h \ > $(NULL) > > libosinfo_1_0_include_HEADERS = \ > @@ -140,6 +141,7 @@ libosinfo_1_0_la_SOURCES = \ > osinfo_db.c \ > osinfo_loader.c \ > osinfo_os_variant.c \ > + osinfo_os_variantlist.c \ > ignore-value.h \ > $(NULL) > > diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms > index 77b8eaa..9fdce6b 100644 > --- a/osinfo/libosinfo.syms > +++ b/osinfo/libosinfo.syms > @@ -451,6 +451,9 @@ LIBOSINFO_0.2.9 { > osinfo_os_variant_get_type; > osinfo_os_variant_get_name; > osinfo_os_variant_new; > + > + osinfo_os_variantlist_get_type; > + osinfo_os_variantlist_new; > } LIBOSINFO_0.2.8; > > /* Symbols in next release... > diff --git a/osinfo/osinfo.h b/osinfo/osinfo.h > index 0d1f66d..cf287f2 100644 > --- a/osinfo/osinfo.h > +++ b/osinfo/osinfo.h > @@ -64,6 +64,7 @@ > #include <osinfo/osinfo_db.h> > #include <osinfo/osinfo_loader.h> > #include <osinfo/osinfo_os_variant.h> > +#include <osinfo/osinfo_os_variantlist.h> > > #endif > /* > diff --git a/osinfo/osinfo_os_variantlist.c b/osinfo/osinfo_os_variantlist.c > new file mode 100644 > index 0000000..6b6046e > --- /dev/null > +++ b/osinfo/osinfo_os_variantlist.c > @@ -0,0 +1,89 @@ > +/* > + * libosinfo: a list of OS variants > + * > + * Copyright (C) 2013 Red Hat, Inc. > + * > + * This library is free software; you can redistribute it and/or > + * modify it under the terms of the GNU Lesser General Public > + * License as published by the Free Software Foundation; either > + * version 2.1 of the License, or (at your option) any later version. > + * > + * This library is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * Lesser General Public License for more details. > + * > + * You should have received a copy of the GNU Lesser General Public > + * License along with this library. If not, see > + * <http://www.gnu.org/licenses/>. > + * > + * Authors: > + * Zeeshan Ali <zeenix@xxxxxxxxxx> > + */ > + > +#include <config.h> > + > +#include <osinfo/osinfo.h> > + > +G_DEFINE_TYPE (OsinfoOsVariantList, osinfo_os_variantlist, OSINFO_TYPE_LIST); > + > +#define OSINFO_OS_VARIANTLIST_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), OSINFO_TYPE_VARIANTLIST, OsinfoOsVariantListPrivate)) > + > +/** > + * SECTION:osinfo_os_variantlist > + * @short_description: A list of OS variants > + * @see_also: #OsinfoList, #OsinfoOsVariant > + * > + * #OsinfoOsVariantList is a list specialization that stores > + * only #OsinfoOsVariant objects. > + */ > + > +struct _OsinfoOsVariantListPrivate > +{ > + gboolean unused; > +}; > + > +static void > +osinfo_os_variantlist_finalize (GObject *object) > +{ > + /* Chain up to the parent class */ > + G_OBJECT_CLASS (osinfo_os_variantlist_parent_class)->finalize (object); > +} You probably don't need to override it if you only chain up to the parent class > + > +/* Init functions */ > +static void > +osinfo_os_variantlist_class_init (OsinfoOsVariantListClass *klass) > +{ > + GObjectClass *g_klass = G_OBJECT_CLASS (klass); > + > + g_klass->finalize = osinfo_os_variantlist_finalize; > + g_type_class_add_private (klass, sizeof (OsinfoOsVariantListPrivate)); > +} > + > +static void > +osinfo_os_variantlist_init (OsinfoOsVariantList *list) > +{ > + list->priv = OSINFO_OS_VARIANTLIST_GET_PRIVATE(list); > +} > + > +/** > + * osinfo_os_variantlist_new: > + * > + * Construct a new install_variant list that is initially empty. > + * > + * Returns: (transfer full): an empty install_variant list > + */ > +OsinfoOsVariantList *osinfo_os_variantlist_new(void) > +{ > + return g_object_new(OSINFO_TYPE_VARIANTLIST, > + "element-type", OSINFO_TYPE_VARIANT, > + NULL); > +} > + > +/* > + * Local variables: > + * indent-tabs-mode: nil > + * c-indent-level: 4 > + * c-basic-offset: 4 > + * End: > + */ > diff --git a/osinfo/osinfo_os_variantlist.h b/osinfo/osinfo_os_variantlist.h > new file mode 100644 > index 0000000..ef4cc71 > --- /dev/null > +++ b/osinfo/osinfo_os_variantlist.h > @@ -0,0 +1,76 @@ > +/* > + * libosinfo: a list of OS variants > + * > + * Copyright (C) 2013 Red Hat, Inc. > + * > + * This library is free software; you can redistribute it and/or > + * modify it under the terms of the GNU Lesser General Public > + * License as published by the Free Software Foundation; either > + * version 2.1 of the License, or (at your option) any later version. > + * > + * This library is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > + * Lesser General Public License for more details. > + * > + * You should have received a copy of the GNU Lesser General Public > + * License along with this library. If not, see > + * <http://www.gnu.org/licenses/>. > + * > + * Authors: > + * Zeeshan Ali <zeenix@xxxxxxxxxx> > + */ > + > +#include <glib-object.h> > +#include <osinfo/osinfo_list.h> > + > +#ifndef __OSINFO_OS_VARIANTLIST_H__ > +#define __OSINFO_OS_VARIANTLIST_H__ > + > +/* > + * Type macros. > + */ > +#define OSINFO_TYPE_VARIANTLIST (osinfo_os_variantlist_get_type ()) > +#define OSINFO_OS_VARIANTLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OSINFO_TYPE_VARIANTLIST, OsinfoOsVariantList)) > +#define OSINFO_IS_VARIANTLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OSINFO_TYPE_VARIANTLIST)) > +#define OSINFO_OS_VARIANTLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OSINFO_TYPE_VARIANTLIST, OsinfoOsVariantListClass)) > +#define OSINFO_IS_VARIANTLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OSINFO_TYPE_VARIANTLIST)) > +#define OSINFO_OS_VARIANTLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OSINFO_TYPE_VARIANTLIST, OsinfoOsVariantListClass)) These macros seem to suffered during the Osinfo->OsinfoOs renaming. > + > +typedef struct _OsinfoOsVariantList OsinfoOsVariantList; > + > +typedef struct _OsinfoOsVariantListClass OsinfoOsVariantListClass; > + > +typedef struct _OsinfoOsVariantListPrivate OsinfoOsVariantListPrivate; > + > +/* object */ > +struct _OsinfoOsVariantList > +{ > + OsinfoList parent_instance; > + > + /* public */ > + > + /* private */ > + OsinfoOsVariantListPrivate *priv; > +}; > + > +/* class */ > +struct _OsinfoOsVariantListClass > +{ > + OsinfoListClass parent_class; > + > + /* class members */ > +}; > + > +GType osinfo_os_variantlist_get_type(void); > + > +OsinfoOsVariantList *osinfo_os_variantlist_new(void); > + > +#endif /* __OSINFO_OS_VARIANTLIST_H__ */ > +/* > + * Local variables: > + * indent-tabs-mode: nil > + * c-indent-level: 4 > + * c-basic-offset: 4 > + * End: > + */ > -- > 1.8.4.2 > > _______________________________________________ > Libosinfo mailing list > Libosinfo@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libosinfo
Attachment:
pgp3HHvE4ohXI.pgp
Description: PGP signature
_______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo