Just a OsinfoList subclass that is meant to contain Variant objects. --- osinfo/Makefile.am | 2 + osinfo/libosinfo.syms | 4 ++ osinfo/osinfo.h | 1 + osinfo/osinfo_variantlist.c | 89 +++++++++++++++++++++++++++++++++++++++++++++ osinfo/osinfo_variantlist.h | 76 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 172 insertions(+) create mode 100644 osinfo/osinfo_variantlist.c create mode 100644 osinfo/osinfo_variantlist.h diff --git a/osinfo/Makefile.am b/osinfo/Makefile.am index 17e1964..da5c837 100644 --- a/osinfo/Makefile.am +++ b/osinfo/Makefile.am @@ -91,6 +91,7 @@ OSINFO_HEADER_FILES = \ osinfo_tree.h \ osinfo_treelist.h \ osinfo_variant.h \ + osinfo_variantlist.h \ $(NULL) libosinfo_1_0_include_HEADERS = \ @@ -140,6 +141,7 @@ libosinfo_1_0_la_SOURCES = \ osinfo_db.c \ osinfo_loader.c \ osinfo_variant.c \ + osinfo_variantlist.c \ ignore-value.h \ $(NULL) diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms index a6f6cc6..a70ac86 100644 --- a/osinfo/libosinfo.syms +++ b/osinfo/libosinfo.syms @@ -451,6 +451,10 @@ LIBOSINFO_0.2.9 { osinfo_variant_get_type; osinfo_variant_get_name; osinfo_variant_new; + + osinfo_variantlist_get_type; + osinfo_variantlist_new; + } LIBOSINFO_0.2.8; /* Symbols in next release... diff --git a/osinfo/osinfo.h b/osinfo/osinfo.h index e06094e..9865a4b 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_variant.h> +#include <osinfo/osinfo_variantlist.h> #endif /* diff --git a/osinfo/osinfo_variantlist.c b/osinfo/osinfo_variantlist.c new file mode 100644 index 0000000..3242068 --- /dev/null +++ b/osinfo/osinfo_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 (OsinfoVariantList, osinfo_variantlist, OSINFO_TYPE_LIST); + +#define OSINFO_VARIANTLIST_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), OSINFO_TYPE_VARIANTLIST, OsinfoVariantListPrivate)) + +/** + * SECTION:osinfo_variantlist + * @short_description: A list of OS variants + * @see_also: #OsinfoList, #OsinfoVariant + * + * #OsinfoVariantList is a list specialization that stores + * only #OsinfoVariant objects. + */ + +struct _OsinfoVariantListPrivate +{ + gboolean unused; +}; + +static void +osinfo_variantlist_finalize (GObject *object) +{ + /* Chain up to the parent class */ + G_OBJECT_CLASS (osinfo_variantlist_parent_class)->finalize (object); +} + +/* Init functions */ +static void +osinfo_variantlist_class_init (OsinfoVariantListClass *klass) +{ + GObjectClass *g_klass = G_OBJECT_CLASS (klass); + + g_klass->finalize = osinfo_variantlist_finalize; + g_type_class_add_private (klass, sizeof (OsinfoVariantListPrivate)); +} + +static void +osinfo_variantlist_init (OsinfoVariantList *list) +{ + list->priv = OSINFO_VARIANTLIST_GET_PRIVATE(list); +} + +/** + * osinfo_variantlist_new: + * + * Construct a new install_variant list that is initially empty. + * + * Returns: (transfer full): an empty install_variant list + */ +OsinfoVariantList *osinfo_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_variantlist.h b/osinfo/osinfo_variantlist.h new file mode 100644 index 0000000..2a71706 --- /dev/null +++ b/osinfo/osinfo_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_VARIANTLIST_H__ +#define __OSINFO_VARIANTLIST_H__ + +/* + * Type macros. + */ +#define OSINFO_TYPE_VARIANTLIST (osinfo_variantlist_get_type ()) +#define OSINFO_VARIANTLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OSINFO_TYPE_VARIANTLIST, OsinfoVariantList)) +#define OSINFO_IS_VARIANTLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OSINFO_TYPE_VARIANTLIST)) +#define OSINFO_VARIANTLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OSINFO_TYPE_VARIANTLIST, OsinfoVariantListClass)) +#define OSINFO_IS_VARIANTLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OSINFO_TYPE_VARIANTLIST)) +#define OSINFO_VARIANTLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OSINFO_TYPE_VARIANTLIST, OsinfoVariantListClass)) + +typedef struct _OsinfoVariantList OsinfoVariantList; + +typedef struct _OsinfoVariantListClass OsinfoVariantListClass; + +typedef struct _OsinfoVariantListPrivate OsinfoVariantListPrivate; + +/* object */ +struct _OsinfoVariantList +{ + OsinfoList parent_instance; + + /* public */ + + /* private */ + OsinfoVariantListPrivate *priv; +}; + +/* class */ +struct _OsinfoVariantListClass +{ + OsinfoListClass parent_class; + + /* class members */ +}; + +GType osinfo_variantlist_get_type(void); + +OsinfoVariantList *osinfo_variantlist_new(void); + +#endif /* __OSINFO_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