AstRawDark
Manage your astrophoto dark frames
 All Classes Functions Variables Enumerations Enumerator Pages
commandExecutor.cpp
1 /*
2  * AstRawDark
3  *
4  * Copyright (C) 2015 - Frédéric CORNU
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #include "commandExecutor.h"
21 
22 bool CommandExecutor::_keepRunning = true;
23 
25  : _queue(queue)
26 {
27 
28 }
29 
31 {
32 
33 }
34 
36 {
37  /*
38  * execute run() function in an isolated thread
39  */
40 
41  QtConcurrent::run(&CommandExecutor::run, _queue);
42 }
43 
45 {
46  _keepRunning = false;
47 }
48 
49 void CommandExecutor::run(CommandQueue* queue)
50 {
51 #ifndef QT_NO_DEBUG
52  qDebug() << "CommandExecutor starting...";
53 #endif
54 
55  /*
56  * check infinitly for commands to execute
57  */
58  while(_keepRunning) {
59 
60  QThread::currentThread()->msleep(10);
61 
62  if ( queue && queue->hasCommands() ) {
63 
64  queue->getCommand()->execute();
65  }
66  }
67 
68 #ifndef QT_NO_DEBUG
69  qDebug() << "CommandExecutor stopped";
70 #endif
71 }