forked from qt-creator/qt-creator
Clang: Move createJobRequest into Jobs
This simplifies the high level client ClangCodeModelServer and removes quite some duplication in tests. Change-Id: I4c6ab8646c8728990ebaca2b920ae514e949c54a Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -25,7 +25,9 @@
|
||||
|
||||
#include "clangjobs.h"
|
||||
|
||||
#include "clangdocument.h"
|
||||
#include "clangiasyncjob.h"
|
||||
#include "projects.h"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QFutureSynchronizer>
|
||||
@@ -42,6 +44,7 @@ Jobs::Jobs(Documents &documents,
|
||||
ClangCodeModelClientInterface &client)
|
||||
: m_documents(documents)
|
||||
, m_unsavedFiles(unsavedFiles)
|
||||
, m_projectParts(projectParts)
|
||||
, m_client(client)
|
||||
, m_queue(documents, projectParts)
|
||||
{
|
||||
@@ -66,11 +69,37 @@ Jobs::~Jobs()
|
||||
delete asyncJob;
|
||||
}
|
||||
|
||||
JobRequest Jobs::createJobRequest(const Document &document,
|
||||
JobRequest::Type type,
|
||||
PreferredTranslationUnit preferredTranslationUnit) const
|
||||
{
|
||||
JobRequest jobRequest;
|
||||
jobRequest.type = type;
|
||||
jobRequest.requirements = JobRequest::requirementsForType(type);
|
||||
jobRequest.filePath = document.filePath();
|
||||
jobRequest.projectPartId = document.projectPartId();
|
||||
jobRequest.unsavedFilesChangeTimePoint = m_unsavedFiles.lastChangeTimePoint();
|
||||
jobRequest.documentRevision = document.documentRevision();
|
||||
jobRequest.preferredTranslationUnit = preferredTranslationUnit;
|
||||
const ProjectPart &projectPart = m_projectParts.project(document.projectPartId());
|
||||
jobRequest.projectChangeTimePoint = projectPart.lastChangeTimePoint();
|
||||
|
||||
return jobRequest;
|
||||
}
|
||||
|
||||
void Jobs::add(const JobRequest &job)
|
||||
{
|
||||
m_queue.add(job);
|
||||
}
|
||||
|
||||
void Jobs::add(const Document &document,
|
||||
JobRequest::Type type,
|
||||
PreferredTranslationUnit preferredTranslationUnit)
|
||||
{
|
||||
const JobRequest jobRequest = createJobRequest(document, type, preferredTranslationUnit);
|
||||
m_queue.add(jobRequest);
|
||||
}
|
||||
|
||||
JobRequests Jobs::process()
|
||||
{
|
||||
const JobRequests jobsToRun = m_queue.processQueue();
|
||||
|
||||
Reference in New Issue
Block a user