| Requirements | |
| ------------ | |
| - plugable backends: | |
| - XML | |
| - flat file | |
| - GConf/bonobo conf | |
| - web registry | |
| - in memory (trivial?) | |
| - SQL backend (gda?) | |
| - provide API to the core to load/inspect/save plugins. | |
| - provide user/system registry | |
| - provide combination of backends | |
| - provide backend specific queries | |
| user/system registry | |
| -------------------- | |
| There are two be two registries on the system. One system registry and one user registry. | |
| The user registry should be queried first, then if that doesn't exist or don't contain any | |
| plugins able to handle the mediatype it should fall back to system registry. | |
| model: | |
| ------ | |
| registry_pool | |
| ! | |
| !---> registry (name, priority) | |
| ! | |
| ! | |
| !---> registry (name, priority) | |
| ! ! | |
| ! !-> plugin | |
| ! ! | |
| ! !-> plugin | |
| ! ... ! | |
| ! !-> feature ... | |
| ! | |
| ... | |
| A registrypool holds a list of registries each with a priority | |
| A registry contains a list of plugins (or libraries) | |
| A plugin contains a list of features (elementfactories, typefacories, ...) | |
| Loading the registry will do | |
| - instantiate empty GstPlugin objects (loaded flag == FALSE) | |
| - instantiate empty plugin features | |
| API | |
| --- | |