Index Return to Main Contents
NAMEglib-genmarshal - C code marshaller generation utility for GLib closures
- glib-genmarshal [options...] [files...]
- Generate header file contents of the marshallers.
- Generate C code file contents of the marshallers.
- --prefix=string, --prefix string
- Specify marshaller prefix. The default prefix is `g_cclosure_marshal'.
- Skip source location remarks in generated comments.
- Do not use the standard marshallers of the GObject library, and skip gmarshal.h include directive in generated header files.
- Make warnings fatal, that is, exit immediately once a warning occurs.
- -h, --help
- Print brief help and exit.
- -v, --version
- Print version and exit.
Marshaller list format
The marshaller lists are processed line by line, a line can contain a comment in the form of
# this is a comment
or a marshaller specification of the form
RTYPE:PTYPE RTYPE:PTYPE,PTYPE RTYPE:PTYPE,PTYPE,PTYPE
(up to 16 PTYPEs may be present).
Currently, the following types are supported:
- indicates no return type, or no extra parameters. If VOID is used as the parameter list, no additional parameters may be present.
- for boolean types (gboolean)
- for signed char types (gchar)
- for unsigned char types (guchar)
- for signed integer types (gint)
- for unsigned integer types (guint)
- for signed long integer types (glong)
- for unsigned long integer types (gulong)
- for signed 64bit integer types (gint64)
- for unsigned 64bit integer types (guint64)
- for enumeration types (gint)
- for flag enumeration types (guint)
- for single-precision float types (gfloat)
- for double-precision float types (gdouble)
- for string types (gchar*)
- for boxed (anonymous but reference counted) types (GBoxed*)
- for GParamSpec or derived types (GParamSpec*)
- for anonymous pointer types (gpointer)
- for GObject or derived types (GObject*)
- deprecated alias for VOID
- deprecated alias for BOOLEAN
To generate marshallers for the following callback functions:
void foo (gpointer data1, gpointer data2); void bar (gpointer data1, gint param1, gpointer data2); gfloat baz (gpointer data1, gboolean param1, guchar param2, gpointer data2);
The marshaller list has to look like this:
VOID:VOID VOID:INT FLOAT:BOOLEAN,UCHAR
The generated marshallers have the arguments encoded in their function name. For this particular list, they are
g_cclosure_marshal_VOID__VOID(), g_cclosure_marshal_VOID__INT(), g_cclosure_marshal_FLOAT__BOOLEAN_UCHAR().
They can be used directly for GClosures or be passed in as the GSignalCMarshaller c_marshaller; argument upon creation of signals:
GClosure *cc_foo, *cc_bar, *cc_baz; cc_foo = g_cclosure_new (NULL, foo, NULL); g_closure_set_marshal (cc_foo, g_cclosure_marshal_VOID__VOID); cc_bar = g_cclosure_new (NULL, bar, NULL); g_closure_set_marshal (cc_bar, g_cclosure_marshal_VOID__INT); cc_baz = g_cclosure_new (NULL, baz, NULL); g_closure_set_marshal (cc_baz, g_cclosure_marshal_FLOAT__BOOLEAN_UCHAR);
glib-genmarshal has been written by Tim Janik <firstname.lastname@example.org>.
This manual page was provided by Tim Janik <email@example.com>.
- SEE ALSO