aboutsummaryrefslogtreecommitdiff
path: root/ips/task.py
diff options
context:
space:
mode:
Diffstat (limited to 'ips/task.py')
-rw-r--r--ips/task.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/ips/task.py b/ips/task.py
new file mode 100644
index 0000000..6c84d51
--- /dev/null
+++ b/ips/task.py
@@ -0,0 +1,45 @@
+# class TaskController(list):
+# def __init__(self):
+# super(TaskController, self).__init__()
+# self._store = []
+#
+# def task(self, task):
+# super(TaskController, self).append(task)
+#
+# def do_tasks(self):
+# for task in super(TaskController, self).__iter__():
+# retval = task.run()
+# if not retval:
+# exit(retval)
+
+class TaskController(object):
+ def __init__(self):
+ self.stack = []
+
+ def task(self, t):
+ """
+ t: Task object
+ """
+ self.stack.append(t)
+
+ def do_tasks(self):
+ """ FILO execution of tasks
+ """
+ #self.stack.reverse()
+ for i in self.stack:
+ i.run()
+
+class NamedTask(object):
+ def __init__(self, name, func, *args):
+ self.name = name
+ self.task = func
+ self.task_args = args
+ print("New task: {0:s} {1:s}".format(self.name, self.task))
+
+ def run(self):
+ print("Running task: {0:s}".format(self.name))
+ status = self.task(self.task_args)
+ return status
+
+class InternalTask(NamedTask):
+ pass \ No newline at end of file