<!-- MHonArc v2.4.4 --> <!--X-Subject: [MUD-Dev] Re: DevMUD: Inheritable modules --> <!--X-From-R13: Fur Oeebj <neebjNgeryyrobet.znvy.gryvn.pbz> --> <!--X-Date: Fri, 30 Oct 1998 16:17:46 -0800 --> <!--X-Message-Id: Pine.LNX.3.96.981031010508.354A-100000@localhost --> <!--X-Content-Type: text/plain --> <!--X-Reference: Pine.LNX.3.96.981028191312.354B-100000@localhost --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, [MUD-Dev] Re: DevMUD: Inheritable modules</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:arrow#trelleborg,mail.telia.com"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg00607.html">Previous</a> | <a href="msg00609.html">Next</a> ] Thread: [ <a href="msg00681.html">Previous</a> | <a href="msg00615.html">Next</a> ] Index: [ <A HREF="author.html#00608">Author</A> | <A HREF="#00608">Date</A> | <A HREF="thread.html#00608">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>[MUD-Dev] Re: DevMUD: Inheritable modules</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> <LI><em>Subject</em>: [MUD-Dev] Re: DevMUD: Inheritable modules</LI> <LI><em>From</em>: The Arrow <<A HREF="mailto:arrow#trelleborg,mail.telia.com">arrow#trelleborg,mail.telia.com</A>></LI> <LI><em>Date</em>: Sat, 31 Oct 1998 01:14:20 +0100 (CET)</LI> <LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> Well, this DevMUD thing really got me started... ;) So, at the end of this mail I have included the first (?) 'Official Proposal' to the DevMUD and MUD-Dev community. It is about module interfaces and inheritance of those interfaces. Since this only is a proposal (and the first version of it), I doubt that anything of this will ever make it to the release of DevMUD. Anyway, let the discussion begin! / Joachim ====================================================================== The Arrow Email: arrow#trelleborg,mail.telia.com Joachim Pileborg WWW: <A HREF="http://w1.410.telia.com/~u41003102/">http://w1.410.telia.com/~u41003102/</A> ====================================================================== "They say I don't give a shit about anything," -- Magnus Uggla "but I don't give a shit about that." (translated from swedish) --------------------------------------------------------------------- This file is the first version of a proposition for module interfaces for DevMUD. DevMUD modules must have one public C function named get_interfaces. This functions returns a pointer to a NULL terminated array of pointers to module_interface structures. The module_interface structure contains the following fields: o Interface type o An array of functions o Interface name The function array is a NULL terminated array of pointers to interface_function structures. The interface_function struture contains the following fields: o Funciton name o Pointer to the function The function name is a predefined constant that is interface specific. For example: The Net basic module could have the following function names: MOD_NET_CONNECTTO, MOD_NET_WRITETO, and MOD_NET_READFROM. All modules must at least implement the Module interface. MUDs must have at least the following interfaces to be DevMUD compliant: o Module The Module interface contains functions to get info about the module and configuring the module. o Net The Net module is an abstract interface, containing just dummy net functions. Modules inheriting this interface must provide real implementations for these functions. The following interfaces are considered standard, and should either come with the DevMUD package, or be easily found and added: o TCPIP A module for TCP/IP networks. Inherits from the Net interface. o Telnet A fully telnet compliant module. Inherits from the TCPIP interface. o Command Parser A basic command parser. The basic Command Parser module read commands from the Telnet module. o DB Generic and abstract interface to databases. Modules inheriting this interface must provide real implementation of theinterface. o Compilation Abstract interface for all MUD-language compilers. Modules inheriting this interface must provide real implementation of the interface. o Virtual Machine Abstract interface for all MUD-language interpreters. Modules inheriting this interface must provide real implementation of the interface. The Module interface have functions for: o Fetching name of the module o Module instanciation o Fetching what interface this module inherits o Intermodule messaging o Driver messaging If the interface(s) this module provides is not recognised by the DevMUD driver, the driver should store the interface(s) in a private database. This database is not defined by this standard, and it is up to each DevMUD implenetation on how to implement this database. The minimum requirement for this database, is that it should store interface name and a complete path to the loadable module. Modules may be compiled in together with the driver (internal modules). In this case, they need not be in the module database. If a module inherits an interface not in the interface database, the module is unloaded and an error message should be logged on the console and sent as a message to all loaded modules. </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <ul compact><li><strong>Follow-Ups</strong>: <ul> <li><strong><A NAME="00615" HREF="msg00615.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong> <ul compact><li><em>From:</em> Thandor <thandor#donut,dhis.org></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="00570" HREF="msg00570.html">[MUD-Dev] DevMUD: Inheritable modules</A></STRONG> <UL><LI><EM>From:</EM> The Arrow <arrow#trelleborg,mail.telia.com></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg00607.html">[MUD-Dev] Re: META/ADMIN: CVS for DevMUD security</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg00609.html">[MUD-Dev] Re: openmud: open issues</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg00681.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg00615.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#00608"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#00608"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>[MUD-Dev] Re: DevMUD: Inheritable modules</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="00617" HREF="msg00617.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sat 31 Oct 1998, 06:30 GMT </LI> <LI><strong><A NAME="00684" HREF="msg00684.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Jo Dillon <a href="mailto:emily#thelonious,new.ox.ac.uk">emily#thelonious,new.ox.ac.uk</a>, Mon 02 Nov 1998, 10:41 GMT <UL> <LI><strong><A NAME="00692" HREF="msg00692.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Vadim Tkachenko <a href="mailto:vt#freehold,crocodile.org">vt#freehold,crocodile.org</a>, Tue 03 Nov 1998, 00:24 GMT </LI> </UL> </LI> </ul> </ul> </ul> <LI><strong><A NAME="00681" HREF="msg00681.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Jo Dillon <a href="mailto:emily#thelonious,new.ox.ac.uk">emily#thelonious,new.ox.ac.uk</a>, Mon 02 Nov 1998, 10:14 GMT </LI> </ul> </ul> </ul> <LI><strong><A NAME="00608" HREF="msg00608.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, The Arrow <a href="mailto:arrow#trelleborg,mail.telia.com">arrow#trelleborg,mail.telia.com</a>, Sat 31 Oct 1998, 00:17 GMT <UL> <LI><strong><A NAME="00615" HREF="msg00615.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Thandor <a href="mailto:thandor#donut,dhis.org">thandor#donut,dhis.org</a>, Sat 31 Oct 1998, 04:29 GMT <UL> <LI><strong><A NAME="00637" HREF="msg00637.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, The Arrow <a href="mailto:arrow#trelleborg,mail.telia.com">arrow#trelleborg,mail.telia.com</a>, Sat 31 Oct 1998, 21:07 GMT <UL> <LI><strong><A NAME="00654" HREF="msg00654.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Thandor <a href="mailto:thandor#donut,dhis.org">thandor#donut,dhis.org</a>, Sun 01 Nov 1998, 02:53 GMT <UL> <LI><strong><A NAME="00666" HREF="msg00666.html">[MUD-Dev] Re: DevMUD: Inheritable modules</A></strong>, Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sun 01 Nov 1998, 08:34 GMT </LI> </UL> </LI> </UL> </LI> </UL> </LI> </UL> </LI> </ul> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>