Next: Embedding SWI-Prolog in
Up: The Foreign Include
Previous: Registering Foreign Predicates
For various specific applications some hooks re provided.
- PL_dispatch_hook_t
- PL_dispatch_hook( PL_dispatch_hook_t)
If this hook is not NULL, this function is called when reading from the
terminal. It is supposed to dispatch events when SWI-Prolog is connected
to a window environment. It can return two values:
PL_DISPATCH_INPUT indicates Prolog input is available on file
descriptor 0 or PL_DISPATCH_TIMEOUT
to indicate a timeout. The old
hook is returned. The type PL_dispatch_hook_t
is defined as:
typedef int (*PL_dispatch_hook_t)(void);
- void
- PL_abort_hook( PL_abort_hook_t)
Install a hook when abort/0 is executed. SWI-Prolog abort/0 is
implemented using C setjmp()/longjmp() construct. The hooks are
executed in the reverse order of their registration after the longjmp()
took place and before the Prolog toplevel is reinvoked. The type
PL_abort_hook_t
is defined as:
typedef void (*PL_abort_hook_t)(void);
- int
- PL_abort_unhook( PL_abort_hook_t)
Remove a hook installed with PL_abort_hook(). Returns FALSE
if no
such hook is found, TRUE
otherwise.
- void
- PL_reinit_hook( PL_reinit_hook_t)
Install a hook that is called when a saved program (using
save_program/[1,2]) is restored. The hooks are called in reverse order.
The type PL_reinit_hook_t
is defined as:
typedef void (*PL_reinit_hook_t)(int argc, char **argv);
- int
- PL_reinit_unhook( PL_reinit_hook_t)
Remove a hook installed with PL_reinit_hook(). Returns FALSE
if
no such hook is found, TRUE
otherwise.
Passani Luca
Tue Nov 14 08:58:33 MET 1995