#ifndef DATAQUEUE_H #define DATAQUEUE_H #include #include #include #include #include #include #include #include "dataloader.h" #include "dataresult1d.h" #include "datarequest.h" class DataQueue : public QThread { Q_OBJECT public: DataQueue(QObject *parent = 0); ~DataQueue(); void run() override; void stop(); DataResult1D getData(QString requestId); signals: void resultReady(QString requestId); public slots: void requestData(const nix::DataArray &array, const nix::NDSize &count, const nix::NDSize &offset, std::string &requestId); private: std::queue requestQueue; std::map resultMap; QMutex mutex; DataLoader *loader; bool stopped; }; #endif // DATAQUEUE_H