src/QtRelationalReaderStringHadler.h
branchv_0
changeset 20 b13e7ed9eea3
parent 18 16784291982f
child 29 0f9f7d6564cd
--- a/src/QtRelationalReaderStringHadler.h	Sun Sep 30 18:34:34 2018 +0200
+++ b/src/QtRelationalReaderStringHadler.h	Sun Sep 30 20:54:35 2018 +0200
@@ -10,63 +10,30 @@
 using namespace relpipe::reader;
 using namespace relpipe::reader::handlers;
 
-// signal/slot parameters must be declared here and registered with qRegisterMetaType()
-
-Q_DECLARE_METATYPE(string_t)
-Q_DECLARE_METATYPE(std::vector<AttributeMetadata>)
-
 class QtRelationalReaderStringHadler : public QObject, public RelationalReaderStringHadler {
-	Q_OBJECT
-private:
-	RelationalReaderStringHadler* target;
-public:
 
-	QtRelationalReaderStringHadler(QObject* parent, RelationalReaderStringHadler* target) :
-	QObject(parent), target(target) {
-
-		// see Q_DECLARE_METATYPE above
-		qRegisterMetaType<string_t>();
-		qRegisterMetaType<std::vector < AttributeMetadata >> ();
-
-		QObject::connect(this, &QtRelationalReaderStringHadler::signal_startRelation, this, &QtRelationalReaderStringHadler::slot_startRelation);
-		QObject::connect(this, &QtRelationalReaderStringHadler::signal_attribute, this, &QtRelationalReaderStringHadler::slot_attribute);
-		QObject::connect(this, &QtRelationalReaderStringHadler::signal_endOfPipe, this, &QtRelationalReaderStringHadler::slot_endOfPipe);
+	Q_OBJECT
+public:
+	QtRelationalReaderStringHadler(QObject* parent) : QObject(parent) {
 	}
 
 	virtual ~QtRelationalReaderStringHadler() {
-
 	}
 
 	virtual void startRelation(string_t name, std::vector<AttributeMetadata> attributes) override {
-		emit signal_startRelation(name, attributes);
+		emit startRelationReceived(name, attributes);
 	}
 
 	virtual void attribute(const string_t& value) override {
-		emit signal_attribute(value);
+		emit attributeReceived(value);
 	};
 
 	virtual void endOfPipe() override {
-		emit signal_endOfPipe();
+		emit endOfPipeReceived();
 	};
 
 signals:
-	void signal_startRelation(string_t name, std::vector<AttributeMetadata> attributes);
-	void signal_attribute(const string_t& value);
-	void signal_endOfPipe();
-
-private slots:
-
-	// FIXME: asynchronous signal-slot data passing between two threads
-
-	void slot_startRelation(string_t name, std::vector<AttributeMetadata> attributes) {
-		target->startRelation(name, attributes);
-	};
-
-	void slot_attribute(const string_t& value) {
-		target->attribute(value);
-	};
-
-	void slot_endOfPipe() {
-		target->endOfPipe();
-	};
+	void startRelationReceived(const string_t name, std::vector<AttributeMetadata> attributes);
+	void attributeReceived(const string_t value);
+	void endOfPipeReceived();
 };