requestfromserver.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef REQUESTFROMSERVER_H
  2. #define REQUESTFROMSERVER_H
  3. #include <QDialog>
  4. #include "frame.h"
  5. #include <QThread>
  6. #include "DetectionClient.hh"
  7. /*
  8. * Ein Thread, der die Vorabannotationen vom Server Abfragt
  9. */
  10. class RequestFromServerThread : public QThread
  11. {
  12. Q_OBJECT
  13. // Fragt die Daten vom Server ab
  14. void run() override;
  15. public:
  16. RequestFromServerThread(QString serverAddress, Frame *f);
  17. DetectionClient *client; // Ein zeiger auf den Detection CLient
  18. signals:
  19. // Wird aufgerufen, sobald der Thread regulär beendet wurde
  20. void threadReady( std::vector< std::vector< cv::Point > > *objects );
  21. private:
  22. QString serverAddress; // Die Adresse des Servers
  23. Frame *f; // Das Bild, das beim Server abgefragt wird
  24. };
  25. namespace Ui {
  26. class RequestFromServer;
  27. }
  28. /*
  29. * Verwaltet das Fenster, das bei der Abfrage von Vorabannotationen vom Server erscheint.
  30. */
  31. class RequestFromServer : public QDialog
  32. {
  33. Q_OBJECT
  34. public:
  35. explicit RequestFromServer( QString serverAddress, Frame *f, QWidget *parent = 0);
  36. ~RequestFromServer();
  37. std::vector< std::vector< cv::Point > > getObjects();
  38. private slots:
  39. // Abfragen von Vorabannotationen abbrechen
  40. void on_abbrechen_clicked();
  41. // Abfragen von Vorabannotationen abgeschlossen
  42. void onThreadReady( std::vector< std::vector< cv::Point > > *objects );
  43. private:
  44. Ui::RequestFromServer *ui; // Ein Zeiger auf alle in requestfromserver.ui spezifizierten Objekte
  45. std::vector< std::vector< cv::Point > > objects; // Eine Liste mit Objekt Polygonen (antwort vom server)
  46. RequestFromServerThread *rfst; // Der Thread, in dem die Daten vom Server abgefragt werden
  47. };
  48. #endif // REQUESTFROMSERVER_H