[virt-tools-list] [[libosinfo V2]] API for getting product logo URLs
Daniel P. Berrange
berrange at redhat.com
Tue Aug 14 09:58:52 UTC 2012
On Tue, Aug 14, 2012 at 12:15:13PM +0300, Zeeshan Ali (Khattak) wrote:
> From: "Zeeshan Ali (Khattak)" <zeeshanak at gnome.org>
>
> While we will be able to neither ship any product logos nor provide URLs
> to them for legal reasons, this patch simply adds API for easily fetch
> URLs from *a* libosinfo database.
> ---
> osinfo/libosinfo.syms | 5 +++++
> osinfo/osinfo_loader.c | 3 ++-
> osinfo/osinfo_product.c | 24 +++++++++++++++++++++++-
> osinfo/osinfo_product.h | 2 ++
> 4 files changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms
> index dcf12ab..5ef304b 100644
> --- a/osinfo/libosinfo.syms
> +++ b/osinfo/libosinfo.syms
> @@ -235,6 +235,11 @@ LIBOSINFO_0.1.0 {
> osinfo_treelist_new_union;
> } LIBOSINFO_0.0.6;
>
> +LIBOSINFO_0.1.3 {
> + global:
> + osinfo_product_get_logo;
> +} LIBOSINFO_0.1.0;
> +
> /* Symbols in next release...
>
> LIBOSINFO_0.0.2 {
> diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c
> index 21d9c7a..bc30241 100644
> --- a/osinfo/osinfo_loader.c
> +++ b/osinfo/osinfo_loader.c
> @@ -33,6 +33,7 @@
> #include <libxml/tree.h>
> #include <libxml/xpath.h>
> #include <libxml/xmlreader.h>
> +#include <libxml/uri.h>
AFAICT this is not required.
>
> G_DEFINE_TYPE (OsinfoLoader, osinfo_loader, G_TYPE_OBJECT);
>
> @@ -373,6 +374,7 @@ static void osinfo_loader_product(OsinfoLoader *loader,
> OSINFO_PRODUCT_PROP_NAME,
> OSINFO_PRODUCT_PROP_VENDOR,
> OSINFO_PRODUCT_PROP_VERSION,
> + OSINFO_PRODUCT_PROP_LOGO,
> OSINFO_PRODUCT_PROP_SHORT_ID,
> OSINFO_PRODUCT_PROP_RELEASE_DATE,
> OSINFO_PRODUCT_PROP_EOL_DATE,
> @@ -384,7 +386,6 @@ static void osinfo_loader_product(OsinfoLoader *loader,
> if (error_is_set(err))
> return;
>
> -
> osinfo_loader_product_relshp(loader, product,
> OSINFO_PRODUCT_RELATIONSHIP_DERIVES_FROM,
> "./derives-from",
> diff --git a/osinfo/osinfo_product.c b/osinfo/osinfo_product.c
> index cc430c5..f330209 100644
> --- a/osinfo/osinfo_product.c
> +++ b/osinfo/osinfo_product.c
> @@ -76,6 +76,7 @@ enum {
> PROP_VENDOR,
> PROP_VERSION,
> PROP_CODENAME,
> + PROP_LOGO,
> };
>
> static void osinfo_product_link_free(gpointer data, gpointer opaque G_GNUC_UNUSED)
> @@ -130,6 +131,9 @@ osinfo_product_get_property (GObject *object,
> case PROP_CODENAME:
> g_value_set_string (value,
> osinfo_product_get_codename (product));
> + case PROP_LOGO:
> + g_value_set_string (value,
> + osinfo_product_get_logo (product));
> break;
>
> default:
> @@ -224,6 +228,21 @@ osinfo_product_class_init (OsinfoProductClass *klass)
> G_PARAM_STATIC_NICK |
> G_PARAM_STATIC_BLURB);
> g_object_class_install_property (g_klass, PROP_NAME, pspec);
> +
> + /**
> + * OsinfoProduct::logo:
> + *
> + * The URI of the logo of the product.
> + */
> + pspec = g_param_spec_string ("logo",
> + "Logo",
> + "URI of the logo",
> + NULL /* default value */,
> + G_PARAM_READABLE |
> + G_PARAM_STATIC_NAME |
> + G_PARAM_STATIC_NICK |
> + G_PARAM_STATIC_BLURB);
> + g_object_class_install_property (g_klass, PROP_LOGO, pspec);
> }
>
> static void
> @@ -354,7 +373,10 @@ GDate *osinfo_product_get_eol_date(OsinfoProduct *prod)
> return date_from_string(str);
> }
>
> -
> +const gchar *osinfo_product_get_logo(OsinfoProduct *prod)
> +{
> + return osinfo_entity_get_param_value(OSINFO_ENTITY(prod), OSINFO_PRODUCT_PROP_LOGO);
> +}
>
> /*
> * Local variables:
> diff --git a/osinfo/osinfo_product.h b/osinfo/osinfo_product.h
> index fa63877..57bd29b 100644
> --- a/osinfo/osinfo_product.h
> +++ b/osinfo/osinfo_product.h
> @@ -51,6 +51,7 @@ typedef struct _OsinfoProductPrivate OsinfoProductPrivate;
> #define OSINFO_PRODUCT_PROP_RELEASE_DATE "release-date"
> #define OSINFO_PRODUCT_PROP_EOL_DATE "eol-date"
> #define OSINFO_PRODUCT_PROP_CODENAME "codename"
> +#define OSINFO_PRODUCT_PROP_LOGO "logo"
>
> /* object */
> struct _OsinfoProduct
> @@ -94,6 +95,7 @@ const gchar *osinfo_product_get_release_date_string(OsinfoProduct *prod);
> const gchar *osinfo_product_get_eol_date_string(OsinfoProduct *prod);
> GDate *osinfo_product_get_release_date(OsinfoProduct *prod);
> GDate *osinfo_product_get_eol_date(OsinfoProduct *prod);
> +const gchar *osinfo_product_get_logo(OsinfoProduct *prod);
>
>
> #endif /* __OSINFO_PRODUCT_H__ */
ACK with the bogus include removed
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the virt-tools-list
mailing list