SYNOPSIS
#include <object_info.h>
mixed object_info(object ob, int what)
DESCRIPTION
Returns some internal information about object <ob>. The
Argument <what> determines which information is returned.
It can be either a configuration option as given to
configure_object() or one of the following options:
Object Flags:
<what> == OI_ONCE_INTERACTIVE:
1 if <ob> was once (or still is) interactive, 0 else.
<what> == OI_RESET_STATE:
1 if <ob> is (still) reset, 0 else.
<what> == OI_WILL_CLEAN_UP:
1 if <ob>'s clean_up() will be called, 0 else.
<what> == OI_LAMBDA_REFERENCED:
1 if <ob> has lambdas (and there replace_program()
is not allowed anymore), 0 else.
<what> == OI_REPLACED:
1 if the program for <ob> was replaced, 0 else.
Program Flags:
<what> == OI_NO_INHERIT:
1 if the program can't be inherited.
<what> == OI_NO_CLONE:
1 if the program/blueprint can't be cloned.
<what> == OI_NO_SHADOW:
1 if the program's functions can't be shadowed.
<what> == OI_SHARE_VARIABLES:
1 if clones of this program share their initial
variable values with the blueprint.
Swapping Information:
<what> == OI_SWAPPED:
1 if <ob> is swapped, 0 else.
<what> == OI_PROG_SWAPPED:
1 if <ob>'s program is swapped, 0 else.
<what> == OI_VAR_SWAPPED:
1 if <ob>'s variables are swapped, 0 else.
<what> == OI_SWAP_NUM:
The swap number for <ob>s program, or -1 if not swapped.
Time Information:
<what> == OI_NEXT_RESET_TIME:
Time of the next reset.
<what> == OI_NEXT_CLEANUP_TIME:
Time of the next data cleanup.
<what> == OI_LAST_REF_TIME:
Time of the last call to <ob>.
Object List:
<what> == OI_OBJECT_NEXT:
The next object in the global object list.
<what> == OI_OBJECT_PREV:
The previous object in the global object list.
<what> == OI_OBJECT_POS:
The position of <ob> in the global object list,
counting from 0 up. This can be expensive to compute.
Shadows:
<what> == OI_SHADOW_NEXT:
The next object in the shadow list, i.e. the object
that is shadowing <ob>, or 0 if <ob> is not shadowed.
<what> == OI_SHADOW_PREV:
The previous object in the shadow list, i.e. the object
that <ob> is currently shadowing, or 0 if <ob> is not a shadow.
<what> == OI_SHADOW_ALL:
Returns an array of all objects that are currently
shadowing <ob>, or an empty array if <ob> is not shadowed.
Object Statistics:
<what> == OI_OBJECT_REFS:
The number of references to <ob>.
<what> == OI_TICKS:
The accumulated evaluation cost spend in <ob> modulo 1000000000.
<what> == OI_GIGATICKS:
The accumulated evaluation cost spend in <ob> divided by 1000000000.
<what> == OI_DATA_SIZE:
The total size of the values held in the object's variables,
scaled down according to the extend of data sharing.
<what> == OI_DATA_SIZE_TOTAL:
The unmodified total size of the values held in the
object's variables
Program Statistics:
<what> == OI_PROG_REFS:
The number of references to <ob>'s program.
<what> == OI_NUM_FUNCTIONS:
The number of functions in the program.
<what> == OI_NUM_VARIABLES:
The number of variables in the program.
<what> == OI_NUM_STRINGS:
The number of strings in the program.
<what> == OI_NUM_INHERITED:
The number of explicitely inherited programs.
<what> == OI_NUM_INCLUDED:
The number of included files in the program.
<what> == OI_SIZE_FUNCTIONS:
The size needed for the function structures.
Note that this does not include size of the function code.
<what> == OI_SIZE_VARIABLES:
The size needed for the variable structures.
Note that this does not include size of the variable data,
See OI_DATA_SIZE/OI_DATA_SIZE_TOTAL for that.
<what> == OI_SIZE_STRINGS:
The size needed for the string pointers.
<what> == OI_SIZE_STRINGS_DATA:
The size needed for the string values,
scaled down according to the extend of data sharing.
<what> == OI_SIZE_STRINGS_DATA_TOTAL:
The unmodified size needed for the string values.
<what> == OI_SIZE_INHERITED:
The size needed for the inherit structures.
<what> == OI_SIZE_INCLUDED:
The size needed for the include structures.
<what> == OI_PROG_SIZE:
The size of the program structure.
<what> == OI_PROG_SIZE_TOTAL:
The total size of the program.
HISTORY
Introduced in LDMud 3.2.6.
Changes in LDMud 3.2.7:
- new basic result OIB_REPLACED.
- basic result OIB_IS_WIZARD is always 0 if set_is_wizard()
is not available.
- basic result OIB_APPROVED is gone.
LDMud 3.2.8 added OIM_DATA_SIZE to the result of OINFO_MEMORY.
LDMud 3.2.9 added the index mechanism, OIM_NUM_INCLUDES,
OIM_NO_INHERIT, OIM_NO_SHADOW, OIM_NO_CLONE, OIM_SIZE_STRINGS_DATA,
OIM_SIZE_STRINGS_TOTAL, and OIM_DATA_SIZE_TOTAL to the result
of OINFO_MEMORY.
LDMud 3.3.378 added the OIM_SHARE_VARIABLES to the result
of OINFO_MEMORY.
LDMud 3.3.654 added the OIB_NEXT_CLEANUP to the result of OINFO_BASIC.
LDMud 3.5.0 redesigned the whole efun.
SEE ALSO
configure_object(E), interactive_info(E), driver_info(E)
|