diff options
author | Mac Mollison <mollison@cs.unc.edu> | 2010-03-13 12:12:37 -0500 |
---|---|---|
committer | Mac Mollison <mollison@cs.unc.edu> | 2010-03-13 12:12:37 -0500 |
commit | 122f457226f54ad23b7cd138512502e430e704dc (patch) | |
tree | fee0690936c3ae95255e559cd0fd09f0fa8c2ad4 /unit_trace/viz/renderer.py | |
parent | 14a40b99735f09f6e70b8e897acbb622f9115ca3 (diff) |
Further restructuring to create 'unit_trace' pkg
The unit_trace folder should be placed in
/usr/local/lib/pythonX.Y/site-packages.
This makes unit-trace submodules available from anywhere
on the system.
Diffstat (limited to 'unit_trace/viz/renderer.py')
-rw-r--r-- | unit_trace/viz/renderer.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/unit_trace/viz/renderer.py b/unit_trace/viz/renderer.py new file mode 100644 index 0000000..d94129c --- /dev/null +++ b/unit_trace/viz/renderer.py | |||
@@ -0,0 +1,40 @@ | |||
1 | #!/usr/bin/python | ||
2 | from schedule import * | ||
3 | from draw import * | ||
4 | |||
5 | """The renderer, a glue object which converts a schedule to its representation | ||
6 | on a graph.""" | ||
7 | |||
8 | class Renderer(object): | ||
9 | def __init__(self, schedule): | ||
10 | self.schedule = schedule | ||
11 | |||
12 | def prepare_task_graph(self, SurfaceType=ImageSurface, attrs=GraphFormat()): | ||
13 | """Outputs the fully-rendered graph (y-axis = tasks) to a Cairo ImageSurface""" | ||
14 | item_list = self.get_task_item_list() | ||
15 | start, end = self.schedule.get_time_bounds() | ||
16 | self.graph = TaskGraph(CairoCanvas, SurfaceType(), start, end, item_list, attrs) | ||
17 | |||
18 | def prepare_cpu_graph(self, SurfaceType=ImageSurface, attrs=GraphFormat()): | ||
19 | item_list = ['CPU %d' % i for i in range(0, self.schedule.get_num_cpus())] | ||
20 | start, end = self.schedule.get_time_bounds() | ||
21 | self.graph = CpuGraph(CairoCanvas, SurfaceType(), start, end, item_list, attrs) | ||
22 | |||
23 | def render_graph_full(self): | ||
24 | """Does the heavy lifting for rendering a task or CPU graph, by scanning the schedule | ||
25 | and drawing it piece by piece""" | ||
26 | #graph.draw_axes('Time', '') | ||
27 | self.schedule.render(self.graph) | ||
28 | |||
29 | def write_out(self, fname): | ||
30 | self.graph.surface.write_out(fname) | ||
31 | |||
32 | def get_graph(self): | ||
33 | return self.graph | ||
34 | |||
35 | def get_schedule(self): | ||
36 | return self.schedule | ||
37 | |||
38 | def get_task_item_list(self): | ||
39 | return [task.get_name() for task in self.schedule.get_task_list()] | ||
40 | |||