diff options
author | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2013-11-26 14:08:26 +0000 |
---|---|---|
committer | Zeeshan Ali (Khattak) <zeeshanak@gnome.org> | 2013-11-29 11:22:19 +0000 |
commit | 3672eb84a236ce9b66b486dbb38b9fe3f065e5d5 (patch) | |
tree | 11fd728951ed72b710a0be55090d6133f5c94058 | |
parent | 24736dbdcbcb122da9a93ffd829a5a4d4f5d173e (diff) | |
download | libosinfo-3672eb84a236ce9b66b486dbb38b9fe3f065e5d5.tar.gz |
Introducing OsinfoOsVariantList
Just a OsinfoList subclass that is meant to contain Variant objects.
-rw-r--r-- | osinfo/Makefile.am | 2 | ||||
-rw-r--r-- | osinfo/libosinfo.syms | 3 | ||||
-rw-r--r-- | osinfo/osinfo.h | 1 | ||||
-rw-r--r-- | osinfo/osinfo_os_variantlist.c | 79 | ||||
-rw-r--r-- | osinfo/osinfo_os_variantlist.h | 76 |
5 files changed, 161 insertions, 0 deletions
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 <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..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 + * <http://www.gnu.org/licenses/>. + * + * Authors: + * Zeeshan Ali <zeenix@redhat.com> + */ + +#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_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 + * <http://www.gnu.org/licenses/>. + * + * Authors: + * Zeeshan Ali <zeenix@redhat.com> + */ + +#include <glib-object.h> +#include <osinfo/osinfo_list.h> + +#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: + */ |