Re: [Vala] Resource API inconsistent



----- Original Message -----

From: Günther Wutz <info gunibert de>
Sent: Sunday, 5 February 2017, 11:23
Subject: [Vala] Resource API inconsistent

if i want to lookup resource data via the glib API, i would normally
use g_resources_open_stream. This function call doesn't need a

object. 


The documentation at https://developer.gnome.org/gio/stable/GResource.html#g-resource-open-stream gives the 
function signature as:


GInputStream *
g_resource_open_stream (GResource *resource,
    const char *path,
    GResourceLookupFlags lookup_flags,
    GError **error);

So that looks like it needs a GResource object to me.


If its registered beforehand i can use it globally in my
application. 


If you use glib-compile-resources to produce a C file and then compile
the C file into your Vala program the resources are registered globally
as static resources. If you are doing that then you could use:
https://valadoc.org/gio-2.0/GLib.resources_open_stream.html

I'm not finding that static function documented anywhere in the GNOME documentation.
The closest I could find is:
https://developer.gnome.org/gio/stable/GResource.html#GStaticResource
This says "GStaticResource is an opaque data structure and can only be 

accessed using the following functions", but doesn't list these functions.
This could be an omission. Maybe because the resource uri scheme is used by most people.
For example using a uri of "resource:////templates/boot/fstab.mustache" 

to open the InputStream.


I've use the static method resources_lookup_data() in Vala/Genie, but 

not tried the resource URI method.


In contrast vala needs a Resource object to use this> function, which seems wrong. Am i missing something 
here?


The method in Vala matches the g_resource_open_stream
C API. This needs a GResource object as shown above.

Al


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]