[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Current Mnemonic Status



Recently I've spent a lot of time digging through the code in the mnemonic
tree, trying to understand some of the stuff I hadn't written myself (of
course everything I had written myself was transparent... *chuckle*).  I
am fully convinced now that the design we have chosen is going to work out
pretty well.

We end up using message passing very little in the core, mainly just for
"feature calls".  We keep the basic abstract interfaces of "Protocol
Handler" and "Connection" and "Stream" because they work out very nicely
as an interface between the network manager and those objects that
handle the low level network stuff.  These abstract interfaces of course
do NOT limit the future extensibility of mnemonic, as anyone is welcome to
extend them to do whatever they want via the message passing interface.

The concept of "Transfer Filters" works out well for network processing
(though I have yet to add an MP interface to it).

The DNS code (and perhaps the GNOME non-blocking DNS code) needs to be
integrated with the tree (just provide a simple message interface to it,
and also fix some of the network manager stuff so we do not need to block
on connection open and setup).

The Filter Stack concept external to the network manager seems to work ok,
though there is a lot of work to do in integrating it properly with the
display code (ie, the void *'s that are currently floating around there
need to be worked out).

The Configuration Manager is nicely done (though some of the actual
code needs some work -- perhaps we wish to merge it with the gnome
configuration file handling stuff) -- and I hope to add a message
interface to it soon.

The object manager needs some coding work, though things should be a lot
easier now with the MP stuff in place.

The actual MP code needs a lot of work, mainly in optimization for memory
usage.  Also, I would like to have a nice method for handling contention
for message types (currently we have no mechanism for someone to
exclusively request handling for a message -- they receive it just like
everyone else).  But, there is also no particular need yet for this
feature (though it is easy to envision cases where we will need this).

I've discovered that being a graduate student requires a lot more work
than being an undergrad -- but as a direct result of that I end up wasting
less time, so I probably will still have enough time to work on mnemonic
in the future.

Andrew