UltraScan III
us_thread_worker.h
Go to the documentation of this file.
1 #ifndef US_THREAD_WORKER_H
3 #define US_THREAD_WORKER_H
4 
5 #include <QtCore>
6 
7 #include "us_extern.h"
8 #include "us_dataIO.h"
9 #include "us_simparms.h"
10 #include "us_model.h"
11 #include "us_noise.h"
12 #include "us_buffer.h"
13 
14 #ifndef DbgLv
15 #define DbgLv(a) if(dbg_level>=a)qDebug()
16 #endif
17 
19 
24 class ThreadWorker : public QObject
25 {
26  Q_OBJECT
27 
28  public:
30  US_DataIO::RawData&, US_Buffer&, int );
31 
32  public slots:
33  void calc_simulation(); // Where the real work is done
34  void forward_progress( int );
35 
36  signals:
37  void work_progress ( int, int );
38  void work_complete ( int );
39 
40  private:
41  US_Model& model; // Model for thread
42  US_SimulationParameters& simparams; // Simulation parameters
43  US_DataIO::RawData& simdat; // Simulation data (pre-inited)
44  US_Buffer& buffer; // Buffer (density,compress)
45  int thrn; // thread number (0,...)
46 
47  int dbg_level; // debug flag
48 };
49 
53 class QThreadEx : public QThread
54 {
55  protected:
56  void run() { exec(); }
57 };
58 
59 #endif
60