From 2a8d36c3570f6c1d469a323e344b8ea480a71d3d Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Tue, 17 Feb 2009 21:23:25 +0000 Subject: Add a simple invokation example --- diff --git a/.gitignore b/.gitignore index a161504..742cd66 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ missing stamp-h1 ylwrap py-compile +examples/glib-print docs/reference/html docs/reference/xml gir/GIRepository-2.0.gir diff --git a/Makefile.am b/Makefile.am index 054ea14..0ef8325 100644 --- a/Makefile.am +++ b/Makefile.am @@ -18,7 +18,7 @@ endif ACLOCAL_AMFLAGS = -I m4 -SUBDIRS = girepository giscanner tools gir tests +SUBDIRS = girepository giscanner tools gir tests examples DIST_SUBDIRS = m4 $(SUBDIRS) man_MANS = \ diff --git a/configure.ac b/configure.ac index 4182a9d..cbb0ec5 100644 --- a/configure.ac +++ b/configure.ac @@ -204,6 +204,7 @@ tests/offsets/Makefile tests/scanner/Makefile tests/repository/Makefile tests/everything/Makefile +examples/Makefile docs/Makefile docs/reference/Makefile gobject-introspection-1.0.pc]) diff --git a/examples/Makefile.am b/examples/Makefile.am new file mode 100644 index 0000000..681a4ca --- /dev/null +++ b/examples/Makefile.am @@ -0,0 +1,5 @@ +noinst_PROGRAMS = glib-print + +glib_print_SOURCES = glib-print.c +glib_print_CFLAGS = $(GIREPO_CFLAGS) -I$(top_srcdir)/girepository +glib_print_LDADD = $(top_builddir)/girepository/libgirepository-1.0.la $(GIREPO_LIBS) diff --git a/examples/glib-print.c b/examples/glib-print.c new file mode 100644 index 0000000..f2f0d6b --- /dev/null +++ b/examples/glib-print.c @@ -0,0 +1,44 @@ +#include + +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; +} -- cgit v0.9.1