diff options
author | Johan Dahlin <jdahlin@litl.com> | 2009-02-17 18:23:25 -0300 |
---|---|---|
committer | Johan Dahlin <johan@gnome.org> | 2009-02-17 18:23:25 -0300 |
commit | 2a8d36c3570f6c1d469a323e344b8ea480a71d3d (patch) | |
tree | c570aef2806936720ac495fa4176c0e37125238d /examples/glib-print.c | |
parent | 53104000372583319f7330fb036c096ca7af4a6b (diff) | |
download | gobject-introspection-2a8d36c3570f6c1d469a323e344b8ea480a71d3d.tar.gz |
Add a simple invokation example
Diffstat (limited to 'examples/glib-print.c')
-rw-r--r-- | examples/glib-print.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/glib-print.c b/examples/glib-print.c new file mode 100644 index 00000000..f2f0d6bc --- /dev/null +++ b/examples/glib-print.c @@ -0,0 +1,44 @@ +#include <girepository.h> + +int main(void) +{ + GIRepository *repository; + GError *error = NULL; + GIBaseInfo *base_info; + GArgument in_args[5]; + GArgument retval; + + g_type_init(); + + repository = g_irepository_get_default(); + g_irepository_require(repository, "GLib", "2.0", 0, &error); + if (error) { + g_error("ERROR: %s\n", error->message); + return 1; + } + + base_info = g_irepository_find_by_name(repository, "GLib", "assertion_message"); + if (!base_info) { + g_error("ERROR: %s\n", "Could not find GLib.warn_message"); + return 1; + } + + in_args[0].v_pointer = "domain"; + in_args[1].v_pointer = "glib-print.c"; + in_args[2].v_pointer = "30"; + in_args[3].v_pointer = "main"; + in_args[4].v_pointer = "hello world"; + + if (!g_function_info_invoke ((GIFunctionInfo *)base_info, + (const GArgument*)&in_args, + 5, + NULL, + 0, + &retval, + &error)) { + g_error("ERROR: %s\n", error->message); + return 1; + } + + return 0; +} |