[DGD]clones, master objects, inheritable, etc...

Kevin N. Carpenter kevinc at monrou.com
Thu Mar 23 16:03:06 CET 2000


Wanted to do a sanity check of my understanding of some basics:

Master objects contain re-entrant, re-usable code and their own variable
space.

Clones contain a variable space and point to the master object code,
saving the mud that code space.  Since the code space is shared, when
the master object is changed, all clones see that change.

Inheritable objects are similar to master objects, except that when it is
inherited, a copy of the inheritable object is included into the code space
of the master object inheriting it.  Thus, if a master inheritable is
changed, all objects previously inheriting it must be recompiled to force
the changed code to be included.

Include files are just that, code included.  When changed, all master
objects or inheritable that use the include file will need to be recompiled.

The driver code keeps track of some of this for you, calling recompile(obj)
if obj is out of date with respect to something it inherits.  This call
only occurs when another object that inherits obj is compiled.

"nomask" functions cannot be overridden by any code inheriting them.

"atomic" functions will revert the state of the mud to its state prior
to the function being executed if the function fails.

"private" functions are local to an object and cannot be called via
call_other(a,b) (or its syntactical equivalent: a->b).

"static" variables retain their last value between function calls to
an object.

Am I missing any other function or variable types (ignoring int, string,
etc.)?  Have I goofed any of the object types?

Kevin C.


List config page:  http://list.imaginary.com/mailman/listinfo/dgd



More information about the DGD mailing list