parent $interfaces object $connection_interface var $root dbref 'connection_interface var $root child_index 3 var $root fertile 0 var $root manager $connection_interface var $root owned [$connection_interface] var $root owners [$connection_interface] var $root writable [] var $root readable ['parameters, 'methods, 'code] var $has_commands commands [] var $has_commands shortcuts [] var $root inited 1 var $connection_interface connection 0 method timeout // the connection is asking the interface if it should timeout // and close the connection. return 1; . method parse_line arg line; var cmd; // don't use the normal parsing system because it involves // a bit of overhead. catch any { while (line && ((line[1]) == " ")) line = substr(line, 2); if (!line) { return .null_cmd(line); } else { cmd = .match_command(line); if (cmd) return .(cmd[1])(@cmd[2]); else return .invalid_cmd(line); } } with handler { .send($parse.traceback(traceback())); return 'disconnect; } . method init_connection_interface (> .perms(caller(), $root) <); connection = 0; . method uninit_connection_interface (> .perms(caller(), $root) <); connection = 0; . method connection_going_away (> .perms(caller(), $connection) <); (> .perms(sender(), connection) <); (> .destroy() <); . method linelen return 79; . method new_connection arg addr; (> .perms(caller(), $connection) <); connection = sender(); . method send arg what; connection.send(what); . method null_cmd arg line; return 'disconnect; . method invalid_cmd arg line; return 'disconnect; . method connection return connection; . method connection_starting // called by connection.connect() .