summaryrefslogtreecommitdiff
path: root/examples/glib-print.c
diff options
context:
space:
mode:
authorJohan Dahlin <jdahlin@litl.com>2009-02-17 18:23:25 -0300
committerJohan Dahlin <johan@gnome.org>2009-02-17 18:23:25 -0300
commit2a8d36c3570f6c1d469a323e344b8ea480a71d3d (patch)
treec570aef2806936720ac495fa4176c0e37125238d /examples/glib-print.c
parent53104000372583319f7330fb036c096ca7af4a6b (diff)
downloadgobject-introspection-2a8d36c3570f6c1d469a323e344b8ea480a71d3d.tar.gz
Add a simple invokation example
Diffstat (limited to 'examples/glib-print.c')
-rw-r--r--examples/glib-print.c44
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;
+}