diff options
Diffstat (limited to 'lib/Task.cc')
-rw-r--r-- | lib/Task.cc | 220 |
1 files changed, 110 insertions, 110 deletions
diff --git a/lib/Task.cc b/lib/Task.cc index afa697c..55a4540 100644 --- a/lib/Task.cc +++ b/lib/Task.cc @@ -1,110 +1,110 @@ -#include <sys/time.h> -#include <iostream> -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include "TaskMan.h" -#include "Task.h" -#include "BString.h" -#include "gettext.h" - -Task::Task() : current(0), state(TASK_ON_HOLD), stopped(false), suspended(false), wbta(0) { - TaskMan::AddTask(this); -} - -Task::~Task() { - TaskMan::RemoveFromWatches(this); -} - -int Task::Do() throw (GeneralException) { - return TASK_ON_HOLD; -} - -int Task::Run() { - try { - state = Do(); - } - catch (TaskSwitch) { - return state; - } - catch (GeneralException e) { - std::cerr << _("Task ") << GetName() << _(" caused an unexpected exception: \"") << e.GetMsg() << _("\". Terminating.\n"); - state = TASK_DONE; - return TASK_DONE; - } - - return state; -} - -int Task::DryRun() { - while (state != TASK_DONE) { - try { - state = Do(); - } - catch (TaskSwitch) { - } - catch (GeneralException e) { - std::cerr << _("Task ") << GetName() << _(" caused an unexpected exception during dry-run: \"") << e.GetMsg() << _("\". Terminating.\n"); - state = TASK_DONE; - } - } - - return state; -} - -int Task::GetState() { - return state; -} - -String Task::GetName() { - return _("Unknow Task"); -} - -void Task::Suspend(int newstate) throw (GeneralException) { - if (newstate != -1) { - state = newstate; - } - suspended = true; - throw TaskSwitch(); -} - -void Task::WaitFor(Handle * h, int flags) { - h->SetNonBlock(); - TaskMan::WaitFor(h, this, flags); -} - -void Task::WaitFor(Task * t) { - t->wbta = this; -} - -void Task::WaitFor(pid_t p) { - TaskMan::WaitFor(p, this); -} - -void Task::WaitFor(timeval t, int flags) { - TaskMan::WaitFor(t, this, flags); -} - -void Task::SetBurst() { - state = TASK_BURST; -} - -void Task::Stop() { - stopped = true; -} - -void Task::Restart() { - stopped = false; -} - -bool Task::IsStopped() { - return stopped; -} - -Task * Task::WaitedBy() { - return wbta; -} - -void Task::RemoveFromWatches() { - wbta = 0; -} +#include <sys/time.h>
+#include <iostream>
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "TaskMan.h"
+#include "Task.h"
+#include "BString.h"
+#include "gettext.h"
+
+Task::Task() : current(0), state(TASK_ON_HOLD), stopped(false), suspended(false), wbta(0) {
+ TaskMan::AddTask(this);
+}
+
+Task::~Task() {
+ TaskMan::RemoveFromWatches(this);
+}
+
+int Task::Do() throw (GeneralException) {
+ return TASK_ON_HOLD;
+}
+
+int Task::Run() {
+ try {
+ state = Do();
+ }
+ catch (TaskSwitch) {
+ return state;
+ }
+ catch (GeneralException e) {
+ std::cerr << _("Task ") << GetName() << _(" caused an unexpected exception: \"") << e.GetMsg() << _("\". Terminating.\n");
+ state = TASK_DONE;
+ return TASK_DONE;
+ }
+
+ return state;
+}
+
+int Task::DryRun() {
+ while (state != TASK_DONE) {
+ try {
+ state = Do();
+ }
+ catch (TaskSwitch) {
+ }
+ catch (GeneralException e) {
+ std::cerr << _("Task ") << GetName() << _(" caused an unexpected exception during dry-run: \"") << e.GetMsg() << _("\". Terminating.\n");
+ state = TASK_DONE;
+ }
+ }
+
+ return state;
+}
+
+int Task::GetState() {
+ return state;
+}
+
+String Task::GetName() {
+ return _("Unknow Task");
+}
+
+void Task::Suspend(int newstate) throw (GeneralException) {
+ if (newstate != -1) {
+ state = newstate;
+ }
+ suspended = true;
+ throw TaskSwitch();
+}
+
+void Task::WaitFor(Handle * h, int flags) {
+ h->SetNonBlock();
+ TaskMan::WaitFor(h, this, flags);
+}
+
+void Task::WaitFor(Task * t) {
+ t->wbta = this;
+}
+
+void Task::WaitFor(pid_t p) {
+ TaskMan::WaitFor(p, this);
+}
+
+void Task::WaitFor(timeval t, int flags) {
+ TaskMan::WaitFor(t, this, flags);
+}
+
+void Task::SetBurst() {
+ state = TASK_BURST;
+}
+
+void Task::Stop() {
+ stopped = true;
+}
+
+void Task::Restart() {
+ stopped = false;
+}
+
+bool Task::IsStopped() {
+ return stopped;
+}
+
+Task * Task::WaitedBy() {
+ return wbta;
+}
+
+void Task::RemoveFromWatches() {
+ wbta = 0;
+}
|