28#include <QElapsedTimer>
46class QueryDependenciesParallelRunner :
public ParallelProcessRunner {
50 explicit QueryDependenciesParallelRunner(QObject *parent =
nullptr);
51 ~QueryDependenciesParallelRunner()
override =
default;
57 void run(
const QString &compilationDatabasePath,
58 const QString &outputFilePath,
59 const QString &queryDependenciesBinary = QString());
71 const QStringList &errorMessages);
77 const QStringList &chunkData,
78 const QString &tempOutputPath)
override;
82 const QStringList &tempOutputPaths,
83 const QString &finalOutputPath,
84 QString &errorMessage)
override;
87 void onAllCompleted(
int successCount,
int failureCount,
int totalCount)
override;
90 QString compilationDatabasePath_;
91 QString queryDependenciesBinary_;
92 QString clangResourceDir_;
93 QElapsedTimer elapsed_;
Generic parallel process runner for executing multiple instances of a program.
bool mergeResults(const QStringList &tempOutputPaths, const QString &finalOutputPath, QString &errorMessage) override
Merge JSON dependency files.
void dependenciesReadyWithErrors(const QJsonObject &dependencies, const QStringList &errorMessages)
Emitted when processes complete with some errors.
void run(const QString &compilationDatabasePath, const QString &outputFilePath, const QString &queryDependenciesBinary=QString())
Run query-dependencies in parallel.
void dependenciesReady(const QJsonObject &dependencies)
Emitted when all processes complete successfully.
QStringList prepareProcessArguments(int chunkIndex, const QStringList &chunkData, const QString &tempOutputPath) override
Build command-line arguments for query-dependencies.
void onAllCompleted(int successCount, int failureCount, int totalCount) override
Handle completion and emit domain-specific signals.
void setClangResourceDir(const QString &dir)
Set the Clang resource directory.