better use of signal/slot mechanism, threads, Qt::ConnectionType::QueuedConnection
#pragma once
#include <QObject>
#include <relpipe/reader/typedefs.h>
#include <relpipe/reader/TypeId.h>
#include <relpipe/reader/handlers/RelationalReaderStringHandler.h>
#include <relpipe/reader/handlers/AttributeMetadata.h>
using namespace relpipe::reader;
using namespace relpipe::reader::handlers;
class QtRelationalReaderStringHadler : public QObject, public RelationalReaderStringHadler {
Q_OBJECT
public:
QtRelationalReaderStringHadler(QObject* parent) : QObject(parent) {
}
virtual ~QtRelationalReaderStringHadler() {
}
virtual void startRelation(string_t name, std::vector<AttributeMetadata> attributes) override {
emit startRelationReceived(name, attributes);
}
virtual void attribute(const string_t& value) override {
emit attributeReceived(value);
};
virtual void endOfPipe() override {
emit endOfPipeReceived();
};
signals:
void startRelationReceived(const string_t name, std::vector<AttributeMetadata> attributes);
void attributeReceived(const string_t value);
void endOfPipeReceived();
};