/* * Structural view of Content Framework * * Generate PNG with: dot -Tpng tracker-structural-view.dot * View the diagram: dotty tracker-structural-view.dot */ digraph G { graph [size="640,480"]; node [shape=box, style=filled, fontsize=11]; edge [fontsize=11]; { rank=source app [label="<>\n\napplication"]; } subgraph cluster0 { label="Content Framework" qsparql [label="<>\n\nQsparql"]; libthumbnailer [label="<>\n\nlibthumbnailer"]; libcontentaction [label="<>\n\nlibcontentaction"]; trackerutils [label="<>\n\ntracker-utils"]; tracker [label="<>\n\ntracker\n(see detailed diagram)"]; trackerextract [label="<>\n\ntracker-extract"]; libtrackerextract [label="<>\n\nlibtracker-extract"]; trackerextract -> libtrackerextract [label="<>"]; trackerminerfs [label="<>\n\ntracker-miner-fs"]; libtrackerminer [label="<>\n\nlibtracker-miner"]; tumbler [label="<>\n\ntumbler"]; {rank=same; tracker; trackerminerfs; libtrackerextract}; libthumbnailer -> tumbler [label="<>"] qsparql -> tracker [label="<>"] trackerminerfs -> trackerextract [label="<>"] trackerminerfs -> libtrackerminer [label="<>"] trackerminerfs -> tracker [label="<>"] trackerutils -> tracker [label="<>"] trackerutils -> trackerminerfs [label="<>"] } { rank=sink extractionlibs [label="<>\n\nextraction-libraries"]; gstreamer [label="<>\n\ngstreamer"]; libhal [label="<>\n\nlibhal"]; libquill [label="<>\n\nlibquill"]; libplayback [label="<>\n\nlibplayback"]; sqlite [label="<>\n\nsqlite" ]; gio [label="<>\n\nGIO"]; inotify [label="<>\n\ninotify"]; gio -> inotify; } app -> qsparql [label="<>"] app -> libthumbnailer [label="<>"] app -> libcontentaction [label="<>"] trackerextract -> extractionlibs [label="<>"] trackerextract -> gstreamer [label="<>"] trackerextract -> libplayback [label="<>"] // trackerstore -> libhal [label="<>"] // trackerminerfs -> libhal [label="<>"] trackerminerfs -> gio [label="<>"] tumbler -> libquill [label="<>"] tracker -> sqlite }