diff options
author | Ian Bicking <ian@ianbicking.org> | 2005-08-22 23:29:31 +0000 |
---|---|---|
committer | Ian Bicking <ian@ianbicking.org> | 2005-08-22 23:29:31 +0000 |
commit | 82d331036f311709b77a1e3a90a9b191c9e49c61 (patch) | |
tree | 2c91bcd0181be8babe4146c3f448429e4840f29f /paste/webkit/FakeWebware/TaskKit/TaskHandler.py | |
parent | 36d1c63f5e12f1dfd6d5187359093a96a2fd2de4 (diff) | |
download | paste-git-82d331036f311709b77a1e3a90a9b191c9e49c61.tar.gz |
Moved webkit to separate project
Diffstat (limited to 'paste/webkit/FakeWebware/TaskKit/TaskHandler.py')
-rw-r--r-- | paste/webkit/FakeWebware/TaskKit/TaskHandler.py | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/paste/webkit/FakeWebware/TaskKit/TaskHandler.py b/paste/webkit/FakeWebware/TaskKit/TaskHandler.py deleted file mode 100644 index 51f5f98..0000000 --- a/paste/webkit/FakeWebware/TaskKit/TaskHandler.py +++ /dev/null @@ -1,138 +0,0 @@ - -from time import time, sleep -from threading import Event, Thread - - -class TaskHandler: - """ - While the Task class only knows what task to perform with the run()-method, - the TaskHandler has all the knowledge about the periodicity of the task. - Instances of this class are managed by the Scheduler in the - scheduled, running and onDemand dictionaries. - """ - - ## Init ## - - def __init__(self, scheduler, start, period, task, name): - self._scheduler = scheduler - self._task = task - self._name = name - self._thread = None - self._isRunning = 0 - self._suspend = 0 - self._lastTime = None - self._startTime = start - self._registerTime = time() - self._reregister = 1 - self._rerun = 0 - self._period = abs(period) - - - ## Scheduling ## - - def reset(self, start, period, task, reregister): - self._startTime = start - self._period = abs(period) - self._task = task - self._reregister = reregister - - def runTask(self): - """ - Runs this task in a background thread. - """ - if self._suspend: - self._scheduler.notifyCompletion(self) - return - self._rerun = 0 - self._thread = Thread(None, self._task._run, self.name(), (self,)) - self._isRunning = 1 - self._thread.start() - - def reschedule(self): - """ - Method to determine whether this task should be rescheduled. Increments the - startTime and returns true if this is a periodically executed task. - """ - if self._period == 0: - return 0 - else: - if self._lastTime - self._startTime > self._period: #if the time taken to run the task exceeds the period - self._startTime = self._lastTime + self._period - else: - self._startTime = self._startTime + self._period - return 1 - - def notifyCompletion(self): - self._isRunning = 0 - self._lastTime = time() - self._scheduler.notifyCompletion(self) - - - ## Attributes ## - - def isRunning(self): - return self._isRunning - - def runAgain(self): - """ - This method lets the Scheduler check to see whether this task should be - re-run when it terminates - """ - return self._rerun - - def isOnDemand(self): - """ - Returns true if this task is not scheduled for periodic execution. - """ - return self._period == 1 - - def runOnCompletion(self): - """ - Method to request that this task be re-run after its current completion. - Intended for on-demand tasks that are requested by the Scheduler while - they are already running. - """ - self._rerun = 1 - - def unregister(self): - """ - Method to request that this task not be kept after its current completion. - Used to remove a task from the scheduler - """ - self._reregister = 0 - self._rerun = 0 - - def disable(self): - """ - Method to disable future invocations of this task. - """ - self._suspend = 1 - - def enable(self): - """ - Method to enable future invocations of this task. - """ - self._suspend = 0 - - def period(self): - """ - Returns the period of this task. - """ - return self._period - - def setPeriod(self, period): - """ - Mmethod to change the period for this task. - """ - self._period = period - - def stop(self): - self._isRunning = 0 - - def name(self): - return self._name - - def startTime(self, newTime=None): - if newTime: - self._startTime = newTime - return self._startTime |