blob: f111e196635a50ffab60f0e9c47f142f59c6eb72 [file] [log] [blame]
SYNOPSIS
#include <sys/driver_hooks.h>
set_driver_hook(H_CREATE_CLONE, value)
<value> being:
void <name> (...)
int <closure> ( void )
int <closure> (object obj_to_init, ...)
DESCRIPTION
Optional hooks to initialize a cloned object after creation.
Hook setting can any closure, or the name of the function
(static or public) to call in the object.
If the hook is an unbound lambda closure expecting arguments,
it is bound to the current object and called with the created
object as the first argument and any further arguments from
the clone_object() call. If the hook is an unbound lambda
closure without arguments, it is bound to the object to be
initalized and called. If the hook is any other type of closure,
it is called with the created object as the first argument and
any further arguments from the clone_object() call.
If the result of the closure call is a non-zero number, it is used
as the interval to wait before the first reset(), else the default
interval computed from TIME_TO_RESET is used.
If the hook is defined as the name of an lfun in the object,
it is called in the object with any further arguments from the
clone_object() call, and any result is ignored.
HISTORY
LDMud 3.2.10 allowed static functions to be given by name.
LDMud 3.6.5 removed the argument given for the lfun call.
SEE ALSO
hooks(C), create_ob(H), create_super(H), create_lwobject(H)