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 55a4540..afa697c 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; +} |