class JobController(object): def __init__(self): self._joblist = list() self._currentjob = None def addEvent(self, event): if self._currentjob is None: self._currentjob = Job() try: self._currentjob.addEvent(event) except StartNewJob: self._joblist.append(self._currentjob) self._currentjob = Job() self._currentjob.addEvent(event) if self._currentjob.isFinished(): self._joblist.append(self._currentjob) self._currentjob = None def finishLastJob(self): if self._currentjob is not None: if self._currentjob.finishJob(): self._joblist.append(self._currentjob) self._currentjob = None def getTotalRunTime(self): totalruntime = 0 for j in self._joblist: totalruntime += j.getRunTime() if self._currentjob is not None: totalruntime += self._currentjob.getRunTime() return totalruntime def getTotalPauseTime(self): totalpausetime = 0 for j in self._joblist: totalpausetime += j.getTotalPauseTime() return totalpausetime def getTotalCoolingTime(self): totalcoolingtime = 0 for j in self._joblist: totalcoolingtime += j.getTotalCoolingTime() return totalcoolingtime def getTotalJobs(self): if self._currentjob is None: return len(self._joblist) else: return len(self._joblist) + 1 def getSuccessfulJobs(self): successfulsum = 0 for j in self._joblist: if j.getstate() == Job.JOB_STATE_SUCCESSFUL: successfulsum += 1 return successfulsum def getCancelledJobs(self): cancelledsum = 0 for j in self._joblist: if j.getstate() == Job.JOB_STATE_CANCELLED: cancelledsum += 1 return cancelledsum def getFailedJobs(self): failedsum = 0 for j in self._joblist: if j.getstate() == Job.JOB_STATE_FAILED: failedsum += 1 return failedsum def getUnknownJobs(self): unknownsum = 0 for j in self._joblist: if j.getstate() == Job.JOB_STATE_UNKNOWN: unknownsum += 1 return unknownsum