dataservice/conversionqueue.h
2018-09-28 17:53:46 +02:00

43 lines
802 B
C++

#ifndef CONVERSIONQUEUE_H
#define CONVERSIONQUEUE_H
#include <QThread>
#include <deque>
#include <QVector>
#include <QPointF>
#include <QMutex>
#include "dataresult1d.h"
struct ConversionRequest {
public:
ConversionRequest(QVector<QPointF> *buffer, const DataResult1D &data);
QVector<QPointF> *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<QPointF> *buffer, const DataResult1D &data);
private:
std::deque<ConversionRequest> requestQueue;
QMutex mutex;
bool stopped;
};
#endif // CONVERSIONQUEUE_H