#ifndef DATAQUEUE_H #define DATAQUEUE_H #include #include #include #include #include #include #include #include #include "dataloader.h" #include "databuffer.h" #include "arrayinfo.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); void dataReady(QString requestId, double min, double max); public slots: //void requestData(const nix::DataArray &array, const nix::NDSize &count, const nix::NDSize &offset, std::string &requestId); void requestData(const nix::DataArray &array, DataBuffer *buffer, const ArrayInfo &info, qreal min, qreal max, std::string &requestId); private: std::deque requestQueue; std::map resultMap; QMutex mutex; DataLoader *loader; bool stopped; }; #endif // DATAQUEUE_H