20 namespace Threads {
class ConditionVar; }
43 virtual bool execute() = 0;
46 virtual void enableWorkControl(
bool=
true);
48 bool workControlEnabled()
const;
49 virtual void controlWork(
Control);
50 virtual Control getState()
const;
57 Task(
const char* nm=0);
58 virtual bool shouldContinue();
83 {
return tr(
"Percentage done"); }
85 void enableWorkControl(
bool=
true);
89 int nrTasks()
const {
return controlledtasks_.size();}
90 const Task*
getTask(
int idx)
const {
return controlledtasks_[idx]; }
94 void controlTask(Task*);
113 void addTask(
Task* );
118 { showcumulativecount_ = yn; }
130 virtual bool execute();
173 virtual int nextStep() = 0;
196 static bool execute(TaskRunner* tskr,
Task& );
203 {
return (execres_ = t.
execute()); }
static uiString stdMessage()
Definition: task.h:52
#define mExpClass(module)
Definition: commondefs.h:157
Is an object that faciliates many threads to wait for something to happen.
Definition: thread.h:108
void showCumulativeCount(bool yn)
Definition: task.h:117
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:51
bool showcumulativecount_
Definition: task.h:136
is an interface where processes can report their progress.
Definition: progressmeter.h:19
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
static int ErrorOccurred()
Definition: task.h:164
ProgressMeter * progressMeter()
Definition: task.h:154
TaskRunner()
Definition: task.h:199
static uiString stdNrDoneText()
Definition: task.h:53
#define od_int64
Definition: plftypes.h:34
void setParallel(bool)
Definition: task.h:116
int nrTasks() const
Definition: task.h:89
virtual uiRetVal errorWithDetails() const
Definition: task.h:41
Definition: uistring.h:88
static int MoreToDo()
Definition: task.h:166
Threads::Lock lock_
Definition: task.h:138
int lastupdate_
Definition: task.h:181
int curtask_
Definition: task.h:135
const Task * getTask(int idx) const
Definition: task.h:90
virtual ~TaskRunner()
Definition: task.h:200
A collection of tasks, that behave as a single task.
Definition: task.h:108
const ProgressMeter * progressMeter() const
Definition: task.h:155
Threads::ConditionVar * workcontrolcondvar_
Definition: task.h:61
interface to threads that should be portable.
Definition: atomic.h:24
void message(const char *)
default: to stderr
The generalization of something (e.g. a computation) where the steps must be done in sequence...
Definition: task.h:147
static int Finished()
Definition: task.h:165
virtual uiString nrDoneText() const
Definition: task.h:36
Class that can execute a task.
Definition: task.h:193
Control
Definition: task.h:45
virtual uiString message() const
Definition: task.h:35
virtual ~SequentialTask()
Definition: task.h:151
int64_t totalNr() const
Definition: task.h:80
virtual void setProgressMeter(ProgressMeter *)
Must be called before execute()
Definition: task.h:32
virtual int64_t totalNr() const
Definition: task.h:39
virtual bool execute(Task &t)
Definition: task.h:202
TypeSet< float > nrdoneweights_
Definition: task.h:101
Definition: uistring.h:299
ObjectSet< Task > controlledtasks_
Definition: task.h:100
Control control_
Definition: task.h:60
virtual int64_t nrDone() const
Definition: task.h:37
ObjectSet< Task > tasks_
Definition: task.h:134
ProgressMeter * progressmeter_
Definition: task.h:180
uiString nrDoneText() const
Definition: task.h:82
bool execres_
Definition: task.h:208
static int WarningAvailable()
Definition: task.h:167
Generalization of something (e.g. a computation) that needs to be done in multiple steps...
Definition: task.h:26
virtual bool execResult() const
Definition: task.h:204
CallBacker object with a name. Use if you want your object to be able to send and receive CallBack's...
Definition: namedobj.h:50
~TaskGroup()
Definition: task.h:112
void deepErase(ObjectSet< T > &os)
empty the ObjectSet deleting all objects pointed to.
Definition: objectset.h:122