+++ /dev/null
-'''\r
-Created on 21 aout 2009\r
-\r
-@author: Samuel Benveniste\r
-'''\r
-import time\r
-\r
-class EventLog():\r
- '''\r
- classdocs\r
- '''\r
- \r
- def __init__(self,eventGroups = [], times = []):\r
- '''\r
- Constructor\r
- '''\r
- self.eventGroups = eventGroups\r
- self.times = times\r
- self.rate = 1\r
- self.yielder = self.eventGroupYielder()\r
- self.yieldPointer = 0\r
- \r
- self._timeCounter = 0\r
- \r
- def __getstate__(self):\r
- d = []\r
- d.append(self.eventGroups)\r
- d.append(self.times)\r
- return d\r
- \r
- def __setstate__(self,d):\r
- self.eventGroups = d[0]\r
- self.times = d[1]\r
- self.yielder = self.eventGroupYielder()\r
- \r
- self._timeCounter = 0\r
- \r
- def appendEventGroup(self, eventGroup):\r
- t = time.clock()*1000\r
- self.times.append(t)\r
- self.eventGroups.append(eventGroup)\r
- \r
- def update(self,timePassed):\r
- self._timeCounter += timePassed\r
- \r
- def setReplayRate(self,rate):\r
- self.rate = rate\r
- self.yielder = self.eventGroupYielder()\r
- \r
- def getPickledEvents(self):\r
- return(self.yielder.next())\r
- \r
- def getCurrentTime(self):\r
- return(self.times[self.yieldPointer])\r
- \r
- def eventGroupYielder(self):\r
- '''\r
- Will return the next event to post if enough time has passed and [] otherwise\r
- '''\r
- i = 0\r
- while i in range(len(self.eventGroups)):\r
- print "rate is " + str(self.rate)\r
- if self._timeCounter*self.rate>self.times[i]:\r
- print str(self._timeCounter*self.rate)+" > "+ str(self.times[i])\r
- self.yieldPointer = i\r
- yield self.eventGroups[i]\r
- i += 1\r
- else:\r
- yield []\r