#ifndef CONVERSIONQUEUE_H #define CONVERSIONQUEUE_H #include #include #include #include #include #include "dataresult1d.h" struct ConversionRequest { public: ConversionRequest(QVector *buffer, const DataResult1D &data); QVector *buffer; DataResult1D data; }; class ConversionQueue : public QThread { Q_OBJECT public: ConversionQueue(QObject *parent = 0); ~ConversionQueue(); void run() override; void stop(); signals: void dataConverted(QString entityId, double, double); public slots: void requestConversion(QVector *buffer, const DataResult1D &data); private: std::deque requestQueue; QMutex mutex; bool stopped; }; #endif // CONVERSIONQUEUE_H