aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/clangtools/clangtoolruncontrol.h
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2019-08-01 14:50:59 +0200
committerNikolai Kosjar <nikolai.kosjar@qt.io>2019-09-05 13:20:15 +0000
commitc9c214057e667beb345879bece5f780ee3287542 (patch)
tree31eeb065d441c153ba273124ae8f3dea231eb560 /src/plugins/clangtools/clangtoolruncontrol.h
parentd471b6df905d9d21f9ce880815cb04c9a90d5935 (diff)
ClangTools: Generalize run control for multiple runners
No functional change at this point. Change-Id: I537f9d8c9eed0b48056918809358a0a179b42eaa Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/clangtools/clangtoolruncontrol.h')
-rw-r--r--src/plugins/clangtools/clangtoolruncontrol.h20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/plugins/clangtools/clangtoolruncontrol.h b/src/plugins/clangtools/clangtoolruncontrol.h
index 2027d9513b..8758ace6cb 100644
--- a/src/plugins/clangtools/clangtoolruncontrol.h
+++ b/src/plugins/clangtools/clangtoolruncontrol.h
@@ -33,6 +33,7 @@
#include <utils/temporarydirectory.h>
#include <QFutureInterface>
+#include <QSet>
#include <QStringList>
namespace ClangTools {
@@ -40,7 +41,6 @@ namespace Internal {
class ClangTool;
class ClangToolRunner;
-class Diagnostic;
class ProjectBuilder;
struct AnalyzeUnit {
@@ -52,6 +52,14 @@ struct AnalyzeUnit {
};
using AnalyzeUnits = QList<AnalyzeUnit>;
+using RunnerCreator = std::function<ClangToolRunner*()>;
+
+struct QueueItem {
+ AnalyzeUnit unit;
+ RunnerCreator runnerCreator;
+};
+using QueueItems = QList<QueueItem>;
+
class ClangToolRunControl : public ProjectExplorer::RunWorker
{
Q_OBJECT
@@ -68,7 +76,7 @@ public:
protected:
void init();
- virtual ClangToolRunner *createRunner() = 0;
+ virtual QList<RunnerCreator> runnerCreators() = 0;
void onRunnerFinishedWithSuccess(const QString &filePath);
void onRunnerFinishedWithFailure(const QString &errorMessage, const QString &errorDetails);
@@ -103,12 +111,12 @@ private:
Core::Id m_toolChainType;
QFutureInterface<void> m_progress;
- AnalyzeUnits m_unitsToProcess;
+ QueueItems m_queue;
QSet<Utils::FilePath> m_projectFiles;
QSet<ClangToolRunner *> m_runners;
- int m_initialFilesToProcessSize = 0;
- int m_filesAnalyzed = 0;
- int m_filesNotAnalyzed = 0;
+ int m_initialQueueSize = 0;
+ QSet<QString> m_filesAnalyzed;
+ QSet<QString> m_filesNotAnalyzed;
bool m_success = false;
};