add option to cache blocks from result messages as well
[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   vpn -> mesh;
26   vpn -> regex;
27   vpn -> tun;
28   pt [shape=house];
29   pt -> mesh;
30   pt -> vpn;
31   pt -> dns;
32   dv -> ats;
33   dns -> tun;
34   gns [shape=house];
35   gns -> namestore;
36   gns -> dns;
37   gns -> dht;
38   gns -> block [style=dotted,color=blue];
39   gns -> identity;
40   namestore -> identity;
41   dht -> core;
42   dht -> nse;
43   dht -> block;
44   dht -> datacache;
45   dht -> peerinfo;
46   dht -> hello;
47   nse -> core;
48   regex -> block [style=dotted,color=blue];
49   block [shape=diamond];
50   datacache [shape=diamond];
51   mesh -> core [weight=2];
52   mesh -> dht;
53   mesh -> block [style=dotted,color=blue];
54   regex -> dht;
55   core -> transport;
56   topology [shape=box];
57   topology -> peerinfo;
58   topology -> transport;
59   topology -> core;
60   topology -> hello;
61   hostlist [shape=box];
62   hostlist -> core;
63   hostlist -> peerinfo;
64   hostlist -> hello;
65   transport -> ats;
66   transport -> hello;     
67   transport -> peerinfo;
68   transport -> nat;
69   transport -> fragmentation;
70   dv [shape=egg];
71   dv -> transport [color=blue,style=dotted];
72   dv -> core;
73   dv -> set;
74   consensus -> set;
75   consensus -> mesh;
76   scalarproduct -> set;
77   scalarproduct -> mesh;
78   set -> mesh;
79   peerinfo -> hello;
80   fragmentation [shape=diamond];
81   hello [shape=diamond];
82   nat [shape=diamond];
83   tun [shape=diamond];
84 }
85
86 // this is what might happen...
87 digraph plan {
88 splines = true;
89
90 // // secushare roadmap:
91   secushare [shape=house,style=dashed];
92   psyc [style=dashed];
93   secushare -> psyc [style=dashed];
94   secushare -> voting [style=dashed,color=red];
95   secushare -> gns [style=dashed];
96   secushare -> fs [style=dashed,color=red];
97   secushare -> reuters [style=dashed,color=red];
98   secushare -> messaging [style=dashed,color=red];
99   psyc -> multicast [style=dashed];
100
101 // // voting roadmap:
102   voting [shape=house,style=dashed];
103   voting -> consensus [style=dashed];
104   voting -> mesh [style=dashed,color=red];
105
106 // // reuters roadmap:
107   reuters [shape=house,style=dashed];
108   dotproduct [style=dashed];
109   reuters -> dotproduct [style=dashed];
110   dotproduct -> set [style=dashed];
111   dotproduct -> mesh [style=dashed];
112   messaging [style=dashed];  
113   messaging -> regex [style=dashed];
114   messaging -> mesh [style=dashed];
115   messaging -> dht [style=dashed];
116   reuters -> messaging [style=dashed,color=red];
117   reuters -> multicast [style=dashed,color=red];
118   reuters -> mesh [style=dashed,color=red];
119   reuters -> core [style=dashed,color=red];
120
121
122 // // core roadmap:
123   dht -> ats [style=dashed,color=red];
124   mesh -> ats [style=dashed,color=red];
125   vpn -> multicast [style=dashed,color=red];
126   exit -> multicast [style=dashed,color=red];
127   multicast [style=dashed];
128   multicast -> mesh [style=dashed];
129
130   fs [shape=house];
131   gns [shape=house];
132   exit [shape=box];
133 }