X-Git-Url: https://scm.cri.ensmp.fr/git/minwii.git/blobdiff_plain/8835f31006dd12de37f0b4bb48f999e32c8848c9..0509328e5d3a7760b00b99cd2176d9089279f458:/src/logging.disabled/EventLog.py diff --git a/src/logging.disabled/EventLog.py b/src/logging.disabled/EventLog.py new file mode 100755 index 0000000..55d778a --- /dev/null +++ b/src/logging.disabled/EventLog.py @@ -0,0 +1,69 @@ +''' +Created on 21 aout 2009 + +@author: Samuel Benveniste +''' +import time + +class EventLog: + ''' + classdocs + ''' + + def __init__(self,eventGroups = [], times = []): + ''' + Constructor + ''' + self.eventGroups = eventGroups + self.times = times + self.rate = 1 + self.yielder = self.eventGroupYielder() + self.yieldPointer = 0 + + self._timeCounter = 0 + + def __getstate__(self): + d = [] + d.append(self.eventGroups) + d.append(self.times) + return d + + def __setstate__(self,d): + self.eventGroups = d[0] + self.times = d[1] + self.yielder = self.eventGroupYielder() + + self._timeCounter = 0 + + def appendEventGroup(self, eventGroup): + t = time.clock()*1000 + self.times.append(t) + self.eventGroups.append(eventGroup) + + def update(self,timePassed): + self._timeCounter += timePassed + + def setReplayRate(self,rate): + self.rate = rate + self.yielder = self.eventGroupYielder() + + def getPickledEvents(self): + return(self.yielder.next()) + + def getCurrentTime(self): + return(self.times[self.yieldPointer]) + + def eventGroupYielder(self): + ''' + Will return the next event to post if enough time has passed and [] otherwise + ''' + i = 0 + while i in range(len(self.eventGroups)): + print "rate is " + str(self.rate) + if self._timeCounter*self.rate>self.times[i]: + print str(self._timeCounter*self.rate)+" > "+ str(self.times[i]) + self.yieldPointer = i + yield self.eventGroups[i] + i += 1 + else: + yield []