Loading...
Searching...
No Matches
ThreadManager.h
Go to the documentation of this file.
1/* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2
3This file is part of the TerraLib - a Framework for building GIS enabled applications.
4
5TerraLib is free software: you can redistribute it and/or modify
6it under the terms of the GNU Lesser General Public License as published by
7the Free Software Foundation, either version 3 of the License,
8or (at your option) any later version.
9
10TerraLib is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU Lesser General Public License for more details.
14
15You should have received a copy of the GNU Lesser General Public License
16along with TerraLib. See COPYING. If not, write to
17TerraLib Team at <terralib-team@terralib.org>.
18*/
19
20/*!
21\file terralib/qt/widgets/canvas/ThreadManager.h
22
23\brief Manager for threads of rendering.
24*/
25
26#ifndef __TERRALIB_QT_WIDGETS_INTERNAL_THREADMANAGER_H
27#define __TERRALIB_QT_WIDGETS_INTERNAL_THREADMANAGER_H
28
29//Terralib
30#include "../Config.h"
31
32//Qt
33#include <QObject>
34
35//STL
36#include <vector>
37
38class QRunnable;
39class QThreadPool;
40class QTimer;
41
42namespace te
43{
44 namespace qt
45 {
46 namespace widgets
47 {
48 class TEQTWIDGETSEXPORT ThreadManager : public QObject
49 {
50 Q_OBJECT
51
52 public:
53
54 ThreadManager(const std::vector<QRunnable*>& threads, int interval=-1);
55
57
58 /*!
59 \brief Run the internal runnable objects.
60 \param enableMultiThread If enabled multiple threads will be executed, if false multi-threading is disabled).
61 */
62 void run( const bool enableMultiThread = true );
63
65
66 Q_SIGNALS:
67
69
70 void finished();
71
72 protected slots:
73
75
76 protected:
77
78 std::vector<QRunnable*> m_threads;
79
80 QThreadPool* m_pool;
81
82 QTimer* m_timer;
83
85 };
86 }
87 }
88}
89
90#endif //__TERRALIB_QT_WIDGETS_INTERNAL_THREADMANAGER_H
void run(const bool enableMultiThread=true)
Run the internal runnable objects.
std::vector< QRunnable * > m_threads
Definition: ThreadManager.h:78
ThreadManager(const std::vector< QRunnable * > &threads, int interval=-1)
TerraLib.
#define slots
#define TEQTWIDGETSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:63