/
CDC-1.2b/
CDC-1.2b/src/
parent $frob_class
parent $messaged
object $event_class

var $root child_index 0
var $root owners [$event_class]
var $root owned [$event_class]
var $root fertile 0
var $root inited 1
var $root manager $event_class
var $root writable [$event_class]
var $root readable ['parameters, 'methods, 'code]
var $root dbref 'event_class
var $event_class type 'generic
var $messaged messages #[]

method new
    arg [args];
    
    .perms(caller(), $event_handler);
    
    // we still don't know what we want
    //  if (type(location) != 'dbref)
    //    throw(~type, "The location must be given as a dbref");
    // return <this(), #[['actor, sender()], ['action, action], ['what, what], ['where, location], ['direction, direction]]>;
    return <this(), [sender(), @args]>;
.

method dispatch
    arg dict;
    
    (dict['where]).event(<this(), dict>);
.

method set_event_type
    arg newtype;
    
    .perms(sender());
    if (type(newtype) != 'symbol)
        throw(~type, "New event types must be symbols.");
    type = newtype;
.

method type
    arg frob;
    
    return type;
.

method process
    arg [args];
    
.