Merge remote-tracking branch 'origin/0.10'
[platform/upstream/gstreamer.git] / docs / random / wtay / registry
1 Requirements
2 ------------
3
4 - plugable backends:
5
6   - XML
7   - flat file
8   - GConf/bonobo conf
9   - web registry
10   - in memory (trivial?)
11   - SQL backend (gda?)
12
13 - provide API to the core to load/inspect/save plugins.
14 - provide user/system registry
15 - provide combination of backends
16 - provide backend specific queries
17
18 user/system registry
19 --------------------
20 There are two be two registries on the system. One system registry and one user registry.
21 The user registry should be queried first, then if that doesn't exist or don't contain any 
22 plugins able to handle the mediatype it should fall back to system registry.
23
24 model:
25 ------
26
27 registry_pool
28  !
29  !---> registry (name, priority)
30  !
31  !
32  !---> registry (name, priority)
33  !        !
34  !        !-> plugin
35  !        !
36  !        !-> plugin
37  !       ...    !
38  !              !-> feature ...
39  !
40  ...
41
42
43 A registrypool holds a list of registries each with a priority
44
45 A registry contains a list of plugins (or libraries)
46
47 A plugin contains a list of features (elementfactories, typefacories, ...)
48
49 Loading the registry will do
50
51  - instantiate empty GstPlugin objects (loaded flag == FALSE)
52  - instantiate empty plugin features
53
54
55
56
57
58
59  
60 API
61 ---
62
63
64