File indexing completed on 2024-05-05 04:39:26
0001 /* 0002 SPDX-FileCopyrightText: 2017 Aleix Pol Gonzalez <aleixpol@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef CMAKESERVERIMPORTJOB_H 0008 #define CMAKESERVERIMPORTJOB_H 0009 0010 #include <QPointer> 0011 #include <KJob> 0012 #include "cmakeprojectdata.h" 0013 0014 namespace KDevelop 0015 { 0016 class IProject; 0017 } 0018 0019 class CMakeServerImportJob : public KJob 0020 { 0021 Q_OBJECT 0022 public: 0023 CMakeServerImportJob(KDevelop::IProject* project, const QSharedPointer<CMakeServer> &server, QObject* parent); 0024 0025 enum Error { NoError, UnexpectedDisconnect, ErrorResponse }; 0026 0027 void start() override; 0028 0029 KDevelop::IProject* project() const { return m_project; } 0030 0031 CMakeProjectData projectData() const { return m_data; } 0032 0033 static void processCodeModel(const QJsonObject &response, CMakeProjectData &data); 0034 0035 private: 0036 void doStart(); 0037 void processResponse(const QJsonObject &response); 0038 0039 QSharedPointer<CMakeServer> m_server; 0040 KDevelop::IProject* m_project; 0041 0042 CMakeProjectData m_data; 0043 }; 0044 0045 #endif // CMAKESERVERIMPORTJOB_H