1Radare OO
2=========
3
4I do realize that Object Orientation sucks, so I tried to do libr API
5following some sane and basic OO concepts.
6
7  - No inheritance
8  - Instances are used to keep states
9  - Enforces instance recycling
10  - Reduce creation/destruction of objects
11  - Easily interfaced with Vala through the VAPIs
12
13Global picture
14--------------
15
16```
17[Class]
18   |
19   |-- [Plugins]  // shared among instances
20   |        \
21   |         \
22   `------> [Instance] ----> [Liberation]
23```
24
25* We need a construction/destruction API for plugins among instances
26  - simplify code
27
28A library implements a set of functionalities, those ones are mainly
29the lifecycle of the class containing the state of
30
31Plugins are singletons. Or we will have to create factories for every class.
32
33Lifecycle of the class
34----------------------
35
36Class
37   - new
38   - as_new
39   - init
40   - free
41
42Library plugins
43---------------
44  They are stored in the p/ directory of each library under the libr directory.
45
46