home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyo (Python 2.2)
-
- from threading import Thread, Event
- from time import time
-
- class TimedUpdate(Thread):
-
- def __init__(self, interval, func, param = []):
- Thread.__init__(self)
- self._Interval = interval
- self._Func = func
- self._Param = param
- self._Done = Event()
-
-
- def SetInterval(self, interval):
- self._Interval = interval
-
-
- def Shutdown(self):
- self._Done.set()
-
-
- def Start(self):
- self.start()
-
-
- def run(self):
- while 1:
- if self._Done.isSet():
- return None
-
- apply(self._Func, self._Param)
- self._Done.wait(self._Interval)
-
-
-
- class UpdateManager:
-
- def __init__(self, interval, func, param = []):
- self._Interval = interval
- self._Func = func
- self._Param = param
- self._Refreshed = time()
- self._Thread = TimedUpdate(interval, self.Update)
- self.Update(force = True)
- self._Thread.setDaemon(1)
- self._Thread.Start()
-
-
- def Update(self, force = False):
- if time() > self._Refreshed + self._Interval or force:
- apply(self._Func, self._Param)
- self._Refreshed = time()
-
-
-
- def SetInterval(self, interval):
- self._Interval = interval
- self._Thread.SetInterval(interval)
-
-
- def ShutDown(self):
- self._Thread.Shutdown()
-
-
-