X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Finternaltask.h;h=608ea9662609bb0e5912f65a247f193f3a292504;hb=d1eb133ab529cdae131be7b150209f03189248f3;hp=59545192a5bc82b130820d1e5b9bf05f0e94edc7;hpb=451ef4f33b5a57dcb56bd7cb671bed359ac86247;p=builder.git diff --git a/source/internaltask.h b/source/internaltask.h index 5954519..608ea96 100644 --- a/source/internaltask.h +++ b/source/internaltask.h @@ -1,6 +1,7 @@ #ifndef INTERNALTASK_H_ #define INTERNALTASK_H_ +#include #include #include "task.h" @@ -11,25 +12,28 @@ or ERROR before terminating. */ class InternalTask: public Task { -public: +private: class Worker: public Msp::Thread { friend class InternalTask; - protected: + private: + std::function func; volatile Status status = Task::RUNNING; - Worker() = default; - public: + Worker(std::function f): func(f) { } + Status get_status() const { return status; } + + private: + void main() override; }; -private: - Worker *worker; + Worker worker; public: - InternalTask(Worker *w): worker(w) { } + InternalTask(std::function f): worker(f) { } ~InternalTask(); std::string get_command() const override { return ""; }