[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-kimageshop
Subject: Re: plugin system
From: Bavo De Ridder <bavodr () poboxes ! com>
Date: 1999-08-31 16:31:21
[Download RAW message or body]
On Tue, 31 Aug 1999, Matthias Elter wrote:
>Use the portable ltdl code (see kdecore) to dlopen the plugin libs. The libs
Thanks for the hint of ltdl, I needed that for my KTL. I am currently working
on a more dynamic version in which different threading implementations can be
loaded at program startup.
>are dlopened two times by the plugin manager: On startup to resolve a symbol
>"PluginInfo* getPluginInfo()" used to collect plugin info for the database and
>on plugin invokation. Plugin invokation "void run()" is wrapped into "void
>init(PluginInterface*)" and "void cleanup()" calls on dlopen/dlclose to hand
>the PluginInterface over and to make sure the plugins have a chance to clean up
>used resources. The plugins run in seperate threads using Bavo de Ridder's KTL.
>The plugin manager simply queries a system wide and a local plugin dir and
>decides based on the file date wether it has to update the plugin database.
>
>+ portable
>+ fast
>+ I have working code for this approach.
>+ We can optionally grant direct access to canvas data structures to avoid data
>transfers.
>+ Plugin writers are not scared away by KOM.
>- A shared lib fooling around with canvas data can easily crash KIS.
It this happens than the access interface was not well written. A good
interface should make it impossible for a plugin to crash the application.
However, the plugin runs in the same address-space as kimageshop, so a division
by zero in the plugin will also bring down kimageshop (or a segfault, ....).
BDR
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic