Re: module manager


Subject: Re: module manager
From: Dom Lachowicz (cinamod@hotmail.com)
Date: Tue May 01 2001 - 12:15:08 CDT


Hi Tomas,

>The module manager looks great Dom.

Thanks a lot! I spent some bit of time on its design. I hope that it's
adequate for our needs, or at least extensible enough so that it can meet
them. I have to fix up a small bug preventing this from compiling on some
platforms (silly private destructor :-) but on the whole, it should work
pretty much out-of-the box XP. I'm pleased!

>Now, should we have some
>mechanism for automatic loading of modules? Perhaps we might
>say that all modules are to be located in AbiSuite/modules, and
>they have to follow certain naming convention, e.g., libAbiMod*. On
>startup we would load all such modules available.

This is exactly what I was thinking. We should have the App load some set of
modules/plugins on startup. These would be contained in some directory on
disk (suggestions can include AbiSuite/modules, AbiSuite/plugins
AbiSuite/plugins/0.7.15, ...) so we should probably should choose our
convention now. I'm in favor of AbiSuite/modules/version# but others may
hold other totally acceptable opinions. I'm flexible, so make your cases :)

Loading (at least on startup) will have to be done in a platform-specific
APP class. This is because we will need to do things similar to this
pseudo-code which involves some possibly platform-specific work (obtaining a
directory list, file extensions, etc...):

files=`ls libAbiMod*.so`
for file in files do
  loadModule $file
done

The suggestion for using libAbiMod*.(dll|so|whatever) is great. I'm all in
favor of it. Dissenters please speak up now or hold your peace until you get
CVS commit access :^)

We'll also allow for runtime loading/unloading of modules from some sort of
dialog which can report all sorts of information about the plugin (i.e. our
XAP_ModuleInfo struct). I will put some more info/data into the struct, so
I'm looking for suggestions as to what we should have here.

The next step is to actually make some of our interfaces more easily
adaptable for use by plugins and then make said plugins. I'm suggesting that
we can start with impexp, possibly with the PalmDoc exporter or importer
since it's a relatively easy and small testcase. To do this, we'll need to
do some work in the ie_imp.cpp and ie_exp.cpp files to probably use vectors
for internal structure and have a "Register/Unregister" function for our
filters.

Dom
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com



This archive was generated by hypermail 2b25 : Sat May 26 2001 - 03:50:59 CDT