xref: /aosp_15_r20/external/rappor/doc/data-flow.dot (revision 2abb31345f6c95944768b5222a9a5ed3fc68cc00)
1*2abb3134SXin Li// Based on http://graphviz.org/content/cluster
2*2abb3134SXin Li
3*2abb3134SXin Li// Node types:
4*2abb3134SXin Li//   Rectangle: process
5*2abb3134SXin Li//   Oval: data
6*2abb3134SXin Li//   Diamond: debug/simulation data
7*2abb3134SXin Li
8*2abb3134SXin Lidigraph G {
9*2abb3134SXin Li  //rankdir="LR";  // left to right layout
10*2abb3134SXin Li
11*2abb3134SXin Li  // http://www.graphviz.org/content/color-names
12*2abb3134SXin Li  colorscheme=pastel13;
13*2abb3134SXin Li
14*2abb3134SXin Li  subgraph cluster_0 {
15*2abb3134SXin Li    graph [ fontsize=24 ];
16*2abb3134SXin Li    label = "Reporting";
17*2abb3134SXin Li    style=filled;
18*2abb3134SXin Li    color=2;
19*2abb3134SXin Li
20*2abb3134SXin Li    node [style=filled, color=white, fontsize=12];
21*2abb3134SXin Li
22*2abb3134SXin Li    gen_sim_input -> dist_csv -> rappor_sim;
23*2abb3134SXin Li
24*2abb3134SXin Li    rappor_sim -> out;
25*2abb3134SXin Li    rappor_sim -> params;
26*2abb3134SXin Li    rappor_sim -> hist;
27*2abb3134SXin Li    rappor_sim -> true_inputs;
28*2abb3134SXin Li
29*2abb3134SXin Li    // Process
30*2abb3134SXin Li    rappor_sim [label="rappor_sim"];
31*2abb3134SXin Li
32*2abb3134SXin Li    // Data
33*2abb3134SXin Li    dist_csv [shape=box, label="dist.csv"];
34*2abb3134SXin Li    out [shape=box, label="dist_out.csv"];
35*2abb3134SXin Li    params [shape=box, label="dist_params.csv"];
36*2abb3134SXin Li
37*2abb3134SXin Li    // simulation data
38*2abb3134SXin Li    hist [shape=box, style=dotted, color=black, label="dist_hist.csv"];
39*2abb3134SXin Li    true_inputs [shape=box, style=dotted, color=black, label="dist_true_inputs.txt"];
40*2abb3134SXin Li  }
41*2abb3134SXin Li
42*2abb3134SXin Li  subgraph cluster_1 {
43*2abb3134SXin Li    graph [ fontsize=24 ];
44*2abb3134SXin Li    label = "Analysis";
45*2abb3134SXin Li    style = filled;
46*2abb3134SXin Li    color=3;
47*2abb3134SXin Li
48*2abb3134SXin Li    node [style=filled, color=white, fontsize=12];
49*2abb3134SXin Li
50*2abb3134SXin Li    sum_bits -> counts;
51*2abb3134SXin Li
52*2abb3134SXin Li    // sum_bits needs the params to construct the matrix.  Technically it could
53*2abb3134SXin Li    // infer it, but this is simple.
54*2abb3134SXin Li    params -> sum_bits;
55*2abb3134SXin Li
56*2abb3134SXin Li    // only in the simulation
57*2abb3134SXin Li    true_inputs -> demo_sh -> candidates [style=dotted];
58*2abb3134SXin Li
59*2abb3134SXin Li    candidates -> hash_candidates -> map;
60*2abb3134SXin Li    params -> hash_candidates;
61*2abb3134SXin Li
62*2abb3134SXin Li    params -> analyze;
63*2abb3134SXin Li    map -> analyze;
64*2abb3134SXin Li    counts -> analyze;
65*2abb3134SXin Li    hist -> analyze [style=dotted];  // only for comparison
66*2abb3134SXin Li
67*2abb3134SXin Li    analyze -> plot_png;
68*2abb3134SXin Li
69*2abb3134SXin Li    // Processes
70*2abb3134SXin Li    analyze [label="analyze.R"];
71*2abb3134SXin Li    demo_sh [label="demo.sh", style=dotted, color=black];
72*2abb3134SXin Li
73*2abb3134SXin Li    // Data
74*2abb3134SXin Li    counts [shape=box, label="dist_count.csv"];
75*2abb3134SXin Li    candidates [shape=box, label="dist_candidates.txt"];
76*2abb3134SXin Li    map [shape=box, label="dist_map.csv"];
77*2abb3134SXin Li
78*2abb3134SXin Li    plot_png [shape=box, label="dist.png"];
79*2abb3134SXin Li
80*2abb3134SXin Li  }
81*2abb3134SXin Li
82*2abb3134SXin Li  out -> sum_bits;
83*2abb3134SXin Li}
84