MAN page from Mandrake 10.X libglib2.0_0-devel-2.2.3-1mdk.i586.rpm
Section: User Commands (1)
Updated: 18 Oct 2000Index
glib-genmarshal - C code marshaller generation utility for GLib closures
glib-genmarshal [options] [files...]
is a small utility that generates C code marshallersfor callback functions of the GClosure mechanism in the GObject sublibraryof GLib. The marshaller functions have a standard signature, they get passedin the invoking closure, an array of value structures holding the callbackfunction parameters and a value structure for the return value of thecallback. The marshaller is then responsible to call the respective C codefunction of the closure with all the parameters on the stack and to collectits return value.
glib-genmarshal takes a list of marshallers to generate as input.The marshaller list is either read from standard input or from filespassed as additional arguments on the command line.
- 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 includedirective 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 acomment in the form of
# this is a comment
or a marshaller specification of the form
# up to 16 PTYPEs may be present
part specifies the callback's return type andthe PTYPE
s right to the colon specify the callback'sparameter list, except for the first and the last arguments whichare always pointers.
Currently, the following types are supported:
- indicates no return type, or no extra parameters. if VOID is used asthe 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 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:
The generated marshallers have the arguments encodedin their function name. For this particular list, theyareg_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 asthe GSignalCMarshaller c_marshaller; argument upon creationof 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);
None known yet.
has been written by Tim Janik <timjAATTgtk.org>.
This manual page was provided by Tim Janik <timjAATTgtk.org>.
- Marshaller list format
- Parameter types
- SEE ALSO
This document was created byman2html,using the manual pages.