évitement d'une collision de nom avec le module logging de python.
[minwii.git] / src / logging.disabled / EventLog.py
diff --git a/src/logging.disabled/EventLog.py b/src/logging.disabled/EventLog.py
new file mode 100755 (executable)
index 0000000..55d778a
--- /dev/null
@@ -0,0 +1,69 @@
+'''\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