fix another memory leak in paillier
[oweals/gnunet.git] / doc / structure.dot
1 // house = application
2 // circle (default) = service
3 // box = daemon
4 // diamond = library
5 // black line = dependency
6 // blue line = extension via plugin
7 // red line = possibly useful
8 // dashed = in planning
9
10 // this is what we have...o
11 digraph dependencies {
12 splines = true;
13
14   fs [shape=house];
15   fs -> dht;
16   fs -> core;
17   fs -> datastore;
18   fs -> mesh;
19   fs -> ats;
20   fs -> block [style=dotted,color=blue];
21   fs -> identity;
22   exit [shape=box];
23   exit -> mesh;
24   exit -> tun;
25   exit -> dnsstub;
26   vpn -> mesh;
27   vpn -> regex;
28   vpn -> tun;
29   pt [shape=house];
30   pt -> mesh;
31   pt -> vpn;
32   pt -> dns;
33   pt -> dnsparser;
34   dv -> ats;
35   dns -> tun;
36   dns -> dnsstub;
37   gns [shape=house];
38   gns -> namestore;
39   gns -> dns;
40   gns -> dht;
41   gns -> block [style=dotted,color=blue];
42   gns -> revocation;
43   gns -> vpn;
44   gns -> dnsparser;
45   gns -> dnsstub;
46   gns -> identity;
47   revocation -> core;
48   revocation -> set;
49   namestore -> identity;
50   namestore -> gnsrecord;
51   dnsparser -> gnsrecord [style=dotted,color=blue];
52   conversation -> gnsrecord [style=dotted,color=blue];
53   gns -> gnsrecord [style=dotted,color=blue];
54   dht -> core;
55   dht -> nse;
56   dht -> block;
57   dht -> datacache;
58   dht -> peerinfo;
59   dht -> hello;
60   nse -> core;
61   regex -> block [style=dotted,color=blue];
62   block [shape=diamond];
63   datacache [shape=diamond];
64   mesh -> core [weight=2];
65   mesh -> dht;
66   mesh -> block [style=dotted,color=blue];
67   conversation [shape=house];
68   conversation -> mesh;
69   conversation -> gns;
70   conversation -> identity;
71   conversation -> speaker;
72   conversation -> microphone;
73   speaker [shape=diamond];
74   microphone [shape=diamond];
75   regex -> dht;
76   core -> transport;
77   topology [shape=box];
78   topology -> peerinfo;
79   topology -> transport;
80   topology -> core;
81   topology -> hello;
82   hostlist [shape=box];
83   hostlist -> core;
84   hostlist -> peerinfo;
85   hostlist -> hello;
86   transport -> ats;
87   transport -> hello;
88   transport -> peerinfo;
89   transport -> nat;
90   transport -> fragmentation;
91   dv [shape=egg];
92   dv -> transport [color=blue,style=dotted];
93   dv -> core;
94   dv -> set;
95   consensus -> set;
96   consensus -> mesh;
97   scalarproduct -> set;
98   scalarproduct -> mesh;
99   set -> mesh;
100   peerinfo -> hello;
101   fragmentation [shape=diamond];
102   hello [shape=diamond];
103   nat [shape=diamond];
104   tun [shape=diamond];
105   dnsparser [shape=diamond];
106   dnsstub [shape=diamond];
107 }
108
109
110 // this is what we have, excluding libs
111 digraph dependencies_no_libs {
112 splines = true;
113
114   fs [shape=house];
115   fs -> dht;
116   fs -> core;
117   fs -> datastore;
118   fs -> mesh;
119   fs -> ats;
120   fs -> identity;
121   exit [shape=box];
122   exit -> mesh;
123   vpn -> mesh;
124   vpn -> regex;
125   pt [shape=house];
126   pt -> mesh;
127   pt -> vpn;
128   pt -> dns;
129   dv -> ats;
130   gns [shape=house];
131   gns -> namestore;
132   gns -> dns;
133   gns -> dht;
134   gns -> revocation;
135   gns -> vpn;
136   gns -> identity;
137   gns -> gnsrecord;
138   revocation -> core;
139   revocation -> set;
140   namestore -> identity;
141   dht -> core;
142   dht -> nse;
143   dht -> peerinfo;
144   nse -> core;
145   mesh -> core [weight=2];
146   mesh -> dht;
147   conversation [shape=house];
148   conversation -> mesh;
149   conversation -> gns;
150   conversation -> identity;
151   regex -> dht;
152   core -> transport;
153   topology [shape=box];
154   topology -> peerinfo;
155   topology -> transport;
156   topology -> core;
157   hostlist [shape=box];
158   hostlist -> core;
159   hostlist -> peerinfo;
160   transport -> ats;
161   transport -> peerinfo;
162   dv [shape=egg];
163   dv -> transport [color=blue,style=dotted];
164   dv -> core;
165   dv -> set;
166   consensus -> set;
167   consensus -> mesh;
168   scalarproduct -> set;
169   scalarproduct -> mesh;
170   set -> mesh;
171 }
172
173
174 // this is what might happen...
175 digraph plan {
176 splines = true;
177
178 // // secushare roadmap:
179   secushare [shape=house,style=dashed];
180   psyc [style=dashed];
181   social -> psyc [style=dashed];
182   psyc -> psycstore [style=dashed];
183   psycstore;
184   social [style=dashed];
185   secushare -> social [style=dashed];
186   secushare -> voting [style=dashed,color=red];
187   secushare -> gns [style=dashed];
188   secushare -> fs [style=dashed,color=red];
189   secushare -> reuters [style=dashed,color=red];
190   secushare -> identity [style=dashed,color=red];
191   secushare -> messaging [style=dashed,color=red];
192   secushare -> conversation [style=dashed,color=red];
193   psyc -> multicast [style=dashed];
194
195 // // voting roadmap:
196   voting [shape=house,style=dashed];
197   voting -> consensus [style=dashed];
198   voting -> identity [style=dashed];
199   voting -> mesh [style=dashed,color=red];
200
201 // // reuters roadmap:
202   reuters [shape=house,style=dashed];
203   scalarproduct [style=dashed];
204   reuters -> scalarproduct [style=dashed];
205   reuters -> identity [style=dashed];
206   scalarproduct -> set [style=dashed];
207   scalarproduct -> mesh [style=dashed];
208   messaging [style=dashed];
209   messaging -> regex [style=dashed];
210   messaging -> mesh [style=dashed];
211   messaging -> dht [style=dashed];
212   reuters -> messaging [style=dashed,color=red];
213   reuters -> multicast [style=dashed,color=red];
214   reuters -> mesh [style=dashed,color=red];
215   reuters -> core [style=dashed,color=red];
216
217
218 // // core roadmap:
219   dht -> ats [style=dashed,color=red];
220   mesh -> ats [style=dashed,color=red];
221   vpn -> multicast [style=dashed,color=red];
222   exit -> multicast [style=dashed,color=red];
223   multicast [style=dashed];
224   multicast -> mesh [style=dashed];
225
226   fs [shape=house];
227   gns [shape=house];
228   conversation [shape=house];
229   exit [shape=box];
230 }