Design of pluginable application
I am designing an application built around plugins.
I know how to create plugins and read them in at run time, but now I need a way of invoking the signal/slot mechanism between them.
For example, in a simple scenario I have plugin1 that has a slot for processing a signal the plugin2 emits.
Plugin1 knows (nor should it) nothing about plugin2.
One approach I thought of (not implemented yet) is to create a map of signals and slots that a plugin defines using the QMeta System and then processing these maps to create the connections. There would have to be some kind of naming convention(similar to the uic connectByName).
Is this a good plan?
How is this generally implemented?