#pragma once #include <vector> #include <QtCore/QObject> #include <QtCore/QEventLoop> class QNetworkAccessManager; class QNetworkReply; class QDomDocument; class QDomNodeList; class gridListReader : public QObject { private: bool _debug = false; bool readyToReadData = false; const std::string gridApdListBaseUrl = "https://ep1.ruhr-uni-bochum.de/endcapProductionDB/api/grid_listapds.php"; std::string gridApdListApiUrl = ""; QNetworkAccessManager* networkManager; QNetworkReply *replyWithFullList; QDomDocument *documentFromNetworkReply; QDomNodeList *nodeListApds; QEventLoop _waitForNetwork; void getApdListFromNetwork(); void verifyHttpResponse(); void getDataFromReply(); void verifyDataFormat(); void verifyQuerySuccess(); void getApdNodeList(); std::vector<std::string> getSerialListIfDataCanBeRead(); std::vector<std::string> getSerialListFromNodeList(); public: gridListReader(int gridnumber, bool debug = false); void getAndProcessData(); std::vector<std::string> getListOfSerials(); };