From 3672eb84a236ce9b66b486dbb38b9fe3f065e5d5 Mon Sep 17 00:00:00 2001 From: "Zeeshan Ali (Khattak)" Date: Tue, 26 Nov 2013 14:08:26 +0000 Subject: Introducing OsinfoOsVariantList 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 | 79 ++++++++++++++++++++++++++++++++++++++++++ osinfo/osinfo_os_variantlist.h | 76 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 161 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 e78c468..89eaf9d 100644 --- a/osinfo/Makefile.am +++ b/osinfo/Makefile.am @@ -83,6 +83,7 @@ OSINFO_HEADER_FILES = \ osinfo_os.h \ osinfo_oslist.h \ osinfo_os_variant.h \ + osinfo_os_variantlist.h \ osinfo_deployment.h \ osinfo_deploymentlist.h \ osinfo_media.h \ @@ -129,6 +130,7 @@ libosinfo_1_0_la_SOURCES = \ osinfo_oslist.c \ osinfo_os.c \ osinfo_os_variant.c \ + osinfo_os_variantlist.c \ osinfo_deployment.c \ osinfo_deploymentlist.c \ osinfo_media.c \ 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 #include #include +#include #endif /* diff --git a/osinfo/osinfo_os_variantlist.c b/osinfo/osinfo_os_variantlist.c new file mode 100644 index 0000000..b6bbced --- /dev/null +++ b/osinfo/osinfo_os_variantlist.c @@ -0,0 +1,79 @@ +/* + * 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 + * . + * + * Authors: + * Zeeshan Ali + */ + +#include + +#include + +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_OS_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; +}; + +/* Init functions */ +static void +osinfo_os_variantlist_class_init (OsinfoOsVariantListClass *klass) +{ + 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_OS_VARIANTLIST, + "element-type", OSINFO_TYPE_OS_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..243352b --- /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 + * . + * + * Authors: + * Zeeshan Ali + */ + +#include +#include + +#ifndef __OSINFO_OS_VARIANTLIST_H__ +#define __OSINFO_OS_VARIANTLIST_H__ + +/* + * Type macros. + */ +#define OSINFO_TYPE_OS_VARIANTLIST (osinfo_os_variantlist_get_type ()) +#define OSINFO_OS_VARIANTLIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OSINFO_TYPE_OS_VARIANTLIST, OsinfoOsVariantList)) +#define OSINFO_IS_OS_VARIANTLIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OSINFO_TYPE_OS_VARIANTLIST)) +#define OSINFO_OS_VARIANTLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OSINFO_TYPE_OS_VARIANTLIST, OsinfoOsVariantListClass)) +#define OSINFO_IS_OS_VARIANTLIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OSINFO_TYPE_OS_VARIANTLIST)) +#define OSINFO_OS_VARIANTLIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OSINFO_TYPE_OS_VARIANTLIST, OsinfoOsVariantListClass)) + +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: + */ -- cgit v1.2.1