glib/gobject/glib-genmarshal.1

197 lines
4.5 KiB
Groff
Raw Normal View History

added newly added gobject/ headers. Tue Oct 24 22:09:14 2000 Tim Janik <timj@gtk.org> * glib-object.h: added newly added gobject/ headers. * gmesage.c: print g_message() output to stderr instead of stdout. Wed Oct 25 20:27:02 2000 Tim Janik <timj@gtk.org> * gtype.c (g_type_free_instance): for the moment, freeing object structures will fill their memory portion with 0xAA. there's a FIXME there, remove this line at a later point. Tue Oct 24 23:10:26 2000 Tim Janik <timj@gtk.org> * glib-genmarshal.1: * glib-genmarshal.c: added publically installed marshaller generator. * gtype.h: added G_TYPE_INSTANCE_GET_INTERFACE() to retrive a certain interface VTable from instances. Mon Oct 23 08:28:15 2000 Tim Janik <timj@gtk.org> * gobject.[hc]: new functions for closure maintenance: (g_object_watch_closure): maintain validity of the object and the closure for objects that are used as data part of a closure. (g_cclosure_new_object): convenience function to create C closures that have an object as data argument. (g_closure_new_object): convenience function to create closures that have an object as data argument. * gclosure.[hc]: implementation of GClosure mechanism. a closure is basically an encapsulation of a callback function and its environment. ideally, most places supporting callback functions will simply take a GClosure* pointer and thus unify callback environments wrg destroy notification etc. GClosure provides destroy notifiers for arbitrary data pointers, reference counting, invalidation notification (it can be invalidated which is merely a deactivate state) and a marshallinbg abstraction. GCClosure is also provided in these files, they present a specialized GClosure implementation for C language callbacks. * genum.c: macro cleanups. * gboxed.[hc]: new files, for boxed type abstraction. (g_boxed_copy): copy a boxed structure (g_boxed_free): free a boxed structure (g_value_set_boxed): (g_value_get_boxed): standard GValue functions for boxed types (g_boxed_type_register_static): convenience function for easy introduction of new G_TYPE_BOXED derivatives. * gparam.[hc]: introduced g_param_type_register_static(), a short hand for creation of new GParamSpec derived types. * gtype.[hc]: many fixes, introduced ability to flag individual type nodes as ABSTRACT upon registration, added value_peek_pointer() to the value table to peek at GValue contents as a pointer for types that support this. fixed up GValue checks. * gvalue.[hc]: added g_value_fits_pointer() and g_value_get_as_pointer() to peek at the value contents as pointer. * *.[hc]: adaptions to type macro fixes and changes in the type registration API. * many const corrections over the place. Sat Oct 21 02:49:56 2000 Tim Janik <timj@gtk.org> * gtype.c (g_type_conforms_to): this function basically behaves like and is_a check, except that it _additionally_ features interfaces for instantiatable types. enforce this in the second branch as well (`type' conforms_to `type') even if `type' is not an interface type. Fri Oct 20 15:31:04 2000 Tim Janik <timj@gtk.org> * gvaluetypes.[hc]: added G_TYPE_POINTER implementation from jrb. * gtype.[hc]: * gobject.c: * gvaluetypes.c: added GTypeValueTable.value_peek_pointer and suitable implementations of this for G_TYPE_STRING, G_TYPE_OBJECT and G_TYPE_POINTER. Mon Aug 21 04:13:37 2000 Tim Janik <timj@gtk.org> * gbsearcharray.[hc]: long standing needed generic implementation of a binary searchable, sorted and dynamically sized array.
2000-10-25 22:36:35 +02:00
.TH GLIB-GENMARSHAL 1 "18 Oct 2000"
.SH NAME
glib-genmarshal \- C code marshaller generation utility for GLib closures
.SH SYNOPSIS
\fBglib-genmarshal\fP [\fIoptions\fP] [\fIfiles...\fP]
.SH DESCRIPTION
\fBglib-genmarshal\fP is a small utility that generates C code marshallers
for callback functions of the GClosure mechanism in the GObject sublibrary
of GLib. The marshaller functions have a standard signature, they get passed
in the invoking closure, an array of value structures holding the callback
function parameters and a value structure for the return value of the
callback. The marshaller is then responsible to call the respective C code
function of the closure with all the parameters on the stack and to collect
its return value.
.SH INVOCATION
\fBglib-genmarshal\fP takes a list of marshallers to generate as input.
The marshaller list is either read from standard input or from files
passed as additional arguments on the command line.
.SS Options
.TP
\fI--header
Generate header file contents of the marshallers.
.TP
\fI--body
Generate C code file contents of the marshallers.
.TP
\fI--prefix=string, --prefix string
Specify marshaller prefix. The default prefix is `\fIg_cclosure_marshal\fP'.
.TP
\fI--skip-source
Skip source location remarks in generated comments.
.TP
\fI--g-fatal-warnings
Make warnings fatal, that is, exit immediately once a warning occours.
.TP
\fI-h, --help\fP
Print brief help and exit.
.TP
\fI-v, --version\fP
Print version and exit.
.PP
.SS Marshaller list format
.PP
The marshaller lists are processed line by line, a line can contain a
comment in the form of
.RS
.PP
# this is a comment
.PP
.RE
or a marshaller specification of the form
.RS
.PP
\fIRTYPE\fP:\fBPTYPE\fP
.PP
\fIRTYPE\fP:\fBPTYPE\fP,\fBPTYPE\fP
.PP
\fIRTYPE\fP:\fBPTYPE\fP,\fBPTYPE\fP,\fBPTYPE\fP
.PP
# up to 16 \fBPTYPE\fPs may be present
.PP
.RE
The \fIRTYPE\fP part specifies the callback's return type and
the \fBPTYPE\fPs right to the colon specify the callback's
parameter list, except for the first and the last arguments which
are always pointers.
.PP
.SS Parameter types
Currently, the following types are supported:
.TP 12
\fIVOID
indicates no return type, or no extra parameters. if \fIVOID\fP is used as
the parameter list, no additional parameters may be present.
.TP 12
\fIBOOLEAN
for boolean types (gboolean)
.TP 12
\fICHAR
for signed char types (gchar)
.TP 12
\fIUCHAR
for unsigned char types (guchar)
.TP 12
\fIINT
for signed integer types (gint)
.TP 12
\fIUINT
for unsigned integer types (guint)
.TP 12
\fILONG
for signed long integer types (glong)
.TP 12
\fIULONG
for unsigned long integer types (gulong)
.TP 12
\fIENUM
for enumeration types (gint)
.TP 12
\fIFLAGS
for flag enumeration types (guint)
.TP 12
\fIFLOAT
for single-precision float types (gfloat)
.TP 12
\fIDOUBLE
for double-precision float types (gdouble)
.TP 12
\fISTRING
for string types (gchar*)
.TP 12
\fIBOXED
for boxed (anonymous but reference counted) types (GBoxed*)
.TP 12
\fIPOINTER
for anonymous pointer types (gpointer)
.TP 12
\fIOBJECT
for GObject or derived types (GObject*)
.TP 12
\fINONE
deprecated alias for \fIVOID\fP
.TP 12
\fIBOOL
deprecated alias for \fIBOOLEAN\fP
.SH EXAMPLE
To generate marshallers for the following callback functions:
.PP
.RS
.nf
void foo (gpointer data1,
gpointer data2);
void bar (gpointer data1,
gint param1,
gpointer data2);
gfloat baz (gpointer data1,
gboolean param1,
guchar param2,
gpointer data2);
.fi
.RE
.PP
The marshaller list has to look like this:
.PP
.RS
.nf
VOID:VOID
VOID:INT
FLOAT:BOOLEAN,UCHAR
.fi
.RE
.PP
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().
.PP
They can be used directly for GClosures or be passed in as
the GSignalCMarshaller c_marshaller; argument upon creation
of signals:
.PP
.nf
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);
.fi
.PP
.SH SEE ALSO
\fB
glib-config(1)
\fP
.SH BUGS
None known yet.
.SH AUTHOR
.B glib-genmarshal
has been written by Tim Janik <timj@gtk.org>.
.PP
This manual page was provided by Tim Janik <timj@gtk.org>.