summaryrefslogtreecommitdiffstats
path: root/reader/stdout_printer.py
diff options
context:
space:
mode:
Diffstat (limited to 'reader/stdout_printer.py')
-rw-r--r--reader/stdout_printer.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/reader/stdout_printer.py b/reader/stdout_printer.py
new file mode 100644
index 0000000..f8d9a84
--- /dev/null
+++ b/reader/stdout_printer.py
@@ -0,0 +1,69 @@
1###############################################################################
2# Description
3###############################################################################
4
5# Prints records to standard out
6
7###############################################################################
8# Public functions
9###############################################################################
10
11def stdout_printer(stream):
12 for record in stream:
13 if record.record_type == "event":
14 _print_event(record)
15 elif record.record_type == "meta" and record.type_name == "stats":
16 _print_stats(record)
17 elif record.record_type == "error" and record.type_name == 'inversion_start':
18 _print_inversion_start(record)
19 elif record.record_type == "error" and record.type_name == 'inversion_end':
20 _print_inversion_end(record)
21 else:
22 continue
23 print ""
24
25###############################################################################
26# Private functions
27###############################################################################
28
29def _print_event(record):
30 print "Job: %d.%d" % (record.pid,record.job)
31 print "Type: %s" % (record.type_name)
32 print "Time: %d" % (record.when)
33
34def _print_inversion_start(record):
35 print "Type: %s" % ("Inversion start")
36 print "Time: %d" % (record.job.inversion_start)
37 print "Job: %d.%d" % (record.job.pid,record.job.job)
38 print "Deadline: %d" % (record.job.deadline)
39 print "Eligible: ",
40 for job in record.eligible:
41 print str(job) + " ",
42 print
43 print "On CPU: ",
44 for job in record.on_cpu:
45 print str(job) + " ",
46 print #newline
47
48def _print_inversion_end(record):
49 print "Type: %s" % ("Inversion end")
50 print "Time: %d" % (record.job.inversion_end)
51 print "Duration: %d" % (
52 record.job.inversion_end - record.job.inversion_start)
53 print "Job: %d.%d" % (record.job.pid,record.job.job)
54 print "Deadline: %d" % (record.job.deadline)
55 print "Eligible: ",
56 for job in record.eligible:
57 print str(job) + " ",
58 print
59 print "On CPU: ",
60 for job in record.on_cpu:
61 print str(job) + " ",
62 print #newline
63
64def _print_stats(record):
65 print "Inversion statistics"
66 print "Num inversions: %d" % (record.num_inversions)
67 print "Min inversion: %d" % (record.min_inversion)
68 print "Max inversion: %d" % (record.max_inversion)
69 print "Avg inversion: %d" % (record.avg_inversion)