summaryrefslogtreecommitdiff
path: root/docs/design/tracker-structural-view.dot
blob: 153c760454e6b4bde77653b4a2eaac1d9cb814b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/*
 * Structural view of tracker
 *
 * Generate PNG with: dot -Tpng tracker-structural-view.dot
 * View the diagram: dotty tracker-structural-view.dot
*/

digraph G {

  graph [size="70,100"];
  node [shape=box, style=filled, fontsize=11];
  edge [fontsize=11];

  { rank=source
    app [label="<<process>>\n\napplication"];
  }

  subgraph cluster0 { 
    label="Content Framework"

    libqttracker [label="<<library>>\n\nlibqttracker"];
    libthumbnailer [label="<<library>>\n\nlibthumbnailer"];
    trackerutils [label="<<command-line>>\n\ntracker-utils"];
    trackerstore [label="<<process>>\n\ntracker-store"];
    sqlite [label="<<library>>\n\nsqlite" ];    

    trackerextract [label="<<process>>\n\ntracker-extract"];
    libtrackerextract [label="<<library>>\n\nlibtracker-extract"];
    trackerextract -> libtrackerextract [label="<<links>>"];

    trackerminerfs [label="<<process>>\n\ntracker-miner-fs"];
    libtrackerminer [label="<<library>>\n\nlibtracker-miner"];

    tumbler [label="<<process>>\n\ntumbler"];


    {rank=same; trackerstore; trackerminerfs; libtrackerextract};

    libthumbnailer -> tumbler [label="<<D-Bus>>"]
    libqttracker -> trackerstore [label="<<D-Bus>>"]

    trackerminerfs -> trackerextract [label="<<D-Bus>>"]
    trackerminerfs -> trackerstore [label="<<D-Bus>>"]
    trackerminerfs -> libtrackerminer [label="<<Implements>>"]

    trackerutils -> trackerstore [label="<<D-Bus>>"]
    trackerutils -> trackerminerfs [label="<<D-Bus>>"]
    
    trackerstore -> sqlite [label="<<link>>"]
  }

  {
    rank=sink
    extractionlibs [label="<<libraries>>\n\nextraction-libraries"];
    gstreamer [label="<<library>>\n\ngstreamer"];
    libhal [label="<<library>>\n\nlibhal"];
    libquill [label="<<library>>\n\nlibquill"];
    libplayback [label="<<library>>\n\nlibplayback"];

    gio [label="<<library>>\n\nGIO"];
    inotify [label="<<kernel>>\n\ninotify"];
    gio -> inotify;
  }

  app -> libqttracker [label="<<link>>"]
  app -> libthumbnailer [label="<<link>>"]

  trackerextract -> extractionlibs [label="<<link>>"]
  trackerextract -> gstreamer [label="<<link>>"]
  trackerextract -> libplayback [label="<<link>>"]
  
//  trackerstore -> libhal [label="<<link>>"]
//  trackerminerfs -> libhal [label="<<link>>"]
  
  trackerminerfs -> gio  [label="<<link>>"]

  tumbler -> libquill [label="<<link>>"]
  
}