diff -r ac70c7af6a9b -r b13e7ed9eea3 src/QtRelationalReaderStringHadler.h --- 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) - 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(); - qRegisterMetaType> (); - - 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 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 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 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 attributes); + void attributeReceived(const string_t value); + void endOfPipeReceived(); };