]> git.tdb.fi Git - builder.git/blobdiff - source/internaltask.h
Make wait applicable to all task types
[builder.git] / source / internaltask.h
index ea25ba89eca0816751d8f13687b5e4aa5afeefd8..399e11937fe0d71e0532f85683aa48632f841286 100644 (file)
@@ -4,11 +4,18 @@
 #include <msp/core/thread.h>
 #include "task.h"
 
+/**
+Runs a worker thread.  Tools should derive a thread class from
+InternalTask::Worker.  The worker thread must set its status to either SUCCESS
+or ERROR before terminating.
+*/
 class InternalTask: public Task
 {
 public:
        class Worker: public Msp::Thread
        {
+               friend class InternalTask;
+
        protected:
                Status status;
 
@@ -25,7 +32,10 @@ public:
        InternalTask(Worker *);
        ~InternalTask();
 
+       virtual std::string get_command() const { return "<internal>"; }
+       virtual void start();
        virtual Status check();
+       virtual Status wait();
 };
 
 #endif