On Saturday 20 September 2014 12:41:07 Yam Marcovic wrote: > Hello, > > In my company, we started getting all tangled up with loads of signals and > slots for many components. We also have a habit of renaming things as time > goes by, and that can also pose a bit of a problem when dealing with > signals & slots, meta object based invocations, etc. > > So, since our compiler supports the relevant features of C++11, I've made > this class, called Dispatcher, which allowed us to develop multi-threaded > apps much more easily. Instead of defining many signals and slots, you > simply make your component extend QObject, and then, since you can use it > with Qt's multi-threading framework, you can use it with the dispatcher. > > Here's the link to my repository on GitHub. It also gives a small usage > example. > > https://github.com/ymarcov/qtdispatcher > > Note that I've striven to make it as correct as possible. E.g. if the > return value is a reference, then you really get that reference, not a copy > of it, and same with pointers. Or if it's by value, and the returned object > has a move constructor, then it will be used. Stuff like that. It's been > working very well for quite some time now in my workplace, and used in > quite critical areas of the code with much success. > > Please let me know if you think this could help the Qt project as a > built-in class. > > With best wishes, > Yam Marcovic
Hi, I think if this feature would be added to QtCore, it should be by extending QMetaObject::invoke to work with functors. By using Qt::BlockingQueuedConnection that would be very similar to what you have done. Regards, -- Olivier Woboq - Qt services and support - http://woboq.com - http://code.woboq.org _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
