OpendTect  6.3
uitaskrunner.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: K. Tingdahl
8  Date: December 2007
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "uitoolsmod.h"
14 #include "uidialog.h"
15 #include "threadlock.h"
16 #include "task.h"
17 
18 class uiProgressBar;
19 class uiLabel;
20 class Timer;
21 namespace Threads { class Thread; }
22 
23 
24 mExpClass(uiTools) uiTaskRunner : public uiDialog
25  , public TaskRunner
27 public:
28  uiTaskRunner(uiParent*,bool dispmsgonerr=true);
29  ~uiTaskRunner();
30 
31  bool execute(Task& t);
32  uiString lastMsg() const { return prevmessage_; }
33  uiRetVal errorWithDetails() const { return errdetails_; }
34  int getState() const { return state_; }
35  void displayMsgOnError(bool yn) { dispmsgonerr_ = yn; }
36 
37 protected:
38 
41 
44  int symbidx_;
45 
55 
57  int state_; //-1 finished in error
58  // 0 finished without error
59  // 1 running
62  void doWork(CallBacker*);
63 
64  uiString finalizeTask();
65  void updateFields();
66  void onFinalise(CallBacker*);
67  void timerTick(CallBacker*);
68  virtual bool acceptOK();
69 
70  virtual bool rejectOK();
71 
72  void init();
73 };
#define mExpClass(module)
Definition: commondefs.h:157
uiLabel * proglbl_
Definition: uitaskrunner.h:40
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:182
bool dispmsgonerr_
Definition: uitaskrunner.h:54
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:51
Task * task_
Definition: uitaskrunner.h:46
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
Threads::Lock dispinfolock_
Definition: uitaskrunner.h:47
bool init()
Threads::Lock uitaskrunnerthreadlock_
Definition: uitaskrunner.h:61
uiRetVal errorWithDetails() const
Definition: uitaskrunner.h:33
uiString prevnrdonetext_
Definition: uitaskrunner.h:52
Definition: uistring.h:88
Definition: uiparent.h:24
int prevtotalnr_
Definition: uitaskrunner.h:48
int prevnrdone_
Definition: uitaskrunner.h:49
Definition: uidialog.h:40
interface to threads that should be portable.
Definition: atomic.h:24
Definition: uiprogressbar.h:18
uiRetVal errdetails_
Definition: uitaskrunner.h:53
Is the base class for all threads. Start it by creating it and give it the function or CallBack to ex...
Definition: thread.h:290
Class that can execute a task.
Definition: task.h:193
Threads::Thread * thread_
Definition: uitaskrunner.h:60
int symbidx_
Definition: uitaskrunner.h:44
uiString prevmessage_
Definition: uitaskrunner.h:51
Timer & tim_
Definition: uitaskrunner.h:42
int getState() const
Definition: uitaskrunner.h:34
int state_
Definition: uitaskrunner.h:57
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Definition: uitaskrunner.h:24
Definition: uilabel.h:22
Definition: uistring.h:299
int prevpercentage_
Definition: uitaskrunner.h:50
uiString lastMsg() const
Definition: uitaskrunner.h:32
uiProgressBar * progbar_
Definition: uitaskrunner.h:39
void displayMsgOnError(bool yn)
Definition: uitaskrunner.h:35
Threads::Lock statelock_
Definition: uitaskrunner.h:56
BufferString execnm_
Definition: uitaskrunner.h:43
Timer class.
Definition: timer.h:24
Generalization of something (e.g. a computation) that needs to be done in multiple steps...
Definition: task.h:26

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B. V. 2017