MOO-cows Mailing List Archive

[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

Plugin interface


Steve Caron and I are the authors and maintainers of the most current
Macintosh port of the MOO server, MacGoesMOO.  For the past few
releases, we have provided support for plugin modules in this port.
We and others thought it might be good to develop a standard for
plug-in modules.  This would allow a variety of developers to use
architecture-specific features allowing plug-in modules to be loaded
while maintaining source-level compatibility among plug-ins.  

The MacGoesMOO plug-in interface is currently very simple.  The server
loads all files in a Plugins folder and calls an initialization
function on them.  The plug-in is linked against the server such that
it has access to all non-static server functions (particularly
register_function()).  A built-in function returns a list of all
plug-ins loaded.

Some enhancements that might make this system adaptable to a wider
variety of plug-ins include the ability to "register" a function to be
called in the server main loop and the ability to explicitly load a
plug-in module after server-startup by using a built-in function.
Another possibility would be to create a configuration file similar to
the configuration files that fill /etc on UNIX machines, allowing
system-specific information (such as root directories for FUP) to be
specified at load-time.

Thank you,

--Nick Ingolia

Home | Subject Index | Thread Index