############################################################################### # Description ############################################################################### # Prints records to standard out ############################################################################### # Public functions ############################################################################### def stdout_printer(stream): for record in stream: if record.record_type == "event": _print_event(record) elif record.record_type == "meta" and record.type_name == "stats": _print_stats(record) elif record.record_type == "error" and record.type_name == 'inversion_start': _print_inversion_start(record) elif record.record_type == "error" and record.type_name == 'inversion_end': _print_inversion_end(record) else: continue print "" ############################################################################### # Private functions ############################################################################### def _print_event(record): print "ID: %d" % (record.id) print "Job: %d.%d" % (record.pid,record.job) print "Type: %s" % (record.type_name) print "Time: %d" % (record.when) def _print_inversion_start(record): print "Type: %s" % ("Inversion start") print "Time: %d" % (record.job.inversion_start) print "Job: %d.%d" % (record.job.pid,record.job.job) print "Deadline: %d" % (record.job.deadline) print "Eligible: ", for job in record.eligible: print str(job) + " ", print print "On CPU: ", for job in record.on_cpu: print str(job) + " ", print #newline def _print_inversion_end(record): print "Type: %s" % ("Inversion end") print "Time: %d" % (record.job.inversion_end) print "Duration: %d" % ( record.job.inversion_end - record.job.inversion_start) print "Job: %d.%d" % (record.job.pid,record.job.job) print "Deadline: %d" % (record.job.deadline) print "Eligible: ", for job in record.eligible: print str(job) + " ", print print "On CPU: ", for job in record.on_cpu: print str(job) + " ", print #newline def _print_stats(record): print "Inversion statistics" print "Num inversions: %d" % (record.num_inversions) print "Min inversion: %d" % (record.min_inversion) print "Max inversion: %d" % (record.max_inversion) print "Avg inversion: %d" % (record.avg_inversion)