Skip to content
Snippets Groups Projects
gridListReader.h 1.02 KiB
Newer Older
#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();
};