+++ /dev/null
-#include "internaltask.h"
-
-InternalTask::~InternalTask()
-{
- worker.join();
-}
-
-void InternalTask::start()
-{
- prepare();
- worker.launch();
-}
-
-Task::Status InternalTask::check()
-{
- Status result = worker.get_status();
- if(result!=RUNNING)
- signal_finished.emit(result==SUCCESS);
- return result;
-}
-
-Task::Status InternalTask::wait()
-{
- Status result;
- while((result = check())==RUNNING) ;
- return result;
-}
-
-
-void InternalTask::Worker::main()
-{
- if(func())
- status = Task::SUCCESS;
- else
- status = Task::ERROR;
-}