]> git.tdb.fi Git - builder.git/blob - source/internaltask.cpp
Make wait applicable to all task types
[builder.git] / source / internaltask.cpp
1 #include "internaltask.h"
2
3 InternalTask::InternalTask(Worker *w):
4         worker(w)
5 { }
6
7 InternalTask::~InternalTask()
8 {
9         worker->join();
10         delete worker;
11 }
12
13 void InternalTask::start()
14 {
15         worker->launch();
16 }
17
18 Task::Status InternalTask::check()
19 {
20         if(worker->get_status()!=RUNNING)
21                 signal_finished.emit(worker->get_status()==SUCCESS);
22         return worker->get_status();
23 }
24
25 Task::Status InternalTask::wait()
26 {
27         Status result;
28         while((result = worker->get_status())==RUNNING) ;
29         return result;
30 }
31
32
33 InternalTask::Worker::Worker():
34         status(RUNNING)
35 { }