Looks good so far, I just have a few comments that I will do inline. On Feb 13, 4:28 am, Erik Johansson <[EMAIL PROTECTED]> wrote: > This symbol, assumed to be a function returning the API version the plugin > was built with, is executed. The return value is required to be the same as > the one the daemon was built against. If not, the library is unloaded. Every > time a change breaking the ABI is done, the API version number is incremented
I see the API version is specified as GNU C Major, GNU C MINOR, Licq MAJOR. That means Licq 2.0.0 and 2.X.X will be binary compatible. Just want to make sure this is intended behaviour. It will also mean that 2.0.0 has to be a stable interface, because any changes that make it not BC anymore will require it to be Licq 3.0.0. As much as the major version number bumps are nice, perhaps 2.0.X and 2.1.X should _not_ be BC? > This means that one library may contain any number of plugins Just curious for your reasoning to have more than one plugin in a library. Could you explain why this is needed? > plugin (IPluginFactory::createPlugin() [2]). This function may be called > several times with the same index and must return different instances each > time (allocated on the heap) since the daemon will delete the plugin when it Perhaps a isLoaded() function is also necessary so a plugin can check if some other plugins that are required are available or not. Or have that be done internally somewhere. > succeeds, the plugin should return true. When init is done, the daemon will > create a new thread and run IPlugin::run() in this new thread. When a plugin > has started, the instance is identified by a TPluginId. This id is only used And notify all other plugins of a newly loaded plugin, with the TPluginId parameter (and a name?). > memory, but I don't think it will be a problem. Correct me if I'm wrong, but > my understanding is that only the parts of a library that are used are kept > in memory. As long as no plugin is created, this will only be the code for > IPluginFactory (perhaps a single page in memory). This will probably need some verification, as this will run on more than just Linux... On another note, I'm still coming along with the Owner document. Perhaps it will be ready by Friday. Jon
