David Rose 23 лет назад
Родитель
Сommit
f3065fbb3e
1 измененных файлов с 34 добавлено и 0 удалено
  1. 34 0
      direct/src/extensions/HTTPChannel-extensions.py

+ 34 - 0
direct/src/extensions/HTTPChannel-extensions.py

@@ -0,0 +1,34 @@
+
+    """
+    HTTPChannel-extensions module: contains methods to extend functionality
+    of the HTTPChannel class
+    """
+
+    def spawnTask(self, name = None, callback = None, extraArgs = []):
+        """Spawns a task to service the download recently requested
+        via beginGetDocument(), etc., and/or downloadToFile() or
+        downloadToRam().  If a callback is specified, that function is
+        called when the download is complete, passing in the extraArgs
+        given.
+
+        Returns the newly-spawned task.
+        """
+        if not name:
+            name = self.getUrl().cStr()
+
+        import Task
+        task = Task.Task(self.doTask)
+        task.callback = callback
+        task.extraArgs = extraArgs
+
+        return taskMgr.add(task, name)
+        
+    def doTask(self, task):
+        import Task
+        if self.run():
+            return Task.cont
+
+        if task.callback:
+            task.callback(*task.extraArgs)
+        return Task.done
+