diff options
| author | Gary Bressler <garybressler@nc.rr.com> | 2010-03-01 23:46:44 -0500 | 
|---|---|---|
| committer | Gary Bressler <garybressler@nc.rr.com> | 2010-03-01 23:46:44 -0500 | 
| commit | 44a8ade3ed5dc4810fd95c41dbe8ec3aa2fb0cf7 (patch) | |
| tree | 4275bbcb03ec58412c3703e4df68f43fb1c10089 /viz/renderer.py | |
Reorganized tree, along with the visualizer
Diffstat (limited to 'viz/renderer.py')
| -rw-r--r-- | viz/renderer.py | 40 | 
1 files changed, 40 insertions, 0 deletions
| diff --git a/viz/renderer.py b/viz/renderer.py new file mode 100644 index 0000000..d94129c --- /dev/null +++ b/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 | |||
