void registerInFactoryMyPlugin()
this function creates a MyPluginFactory and register it in the QGeneralFactory.
When at run time an application ask to LoadPlugin("MyPlugin") the QDll system
open the library that contains registerMyPlugin and executes it so that the MyPluginFactory
is automatically created and registered into the QGeneralFactory.
Once a plugin is registered other applications can call the CreatePluginType("MyPlugin") that
in turns call the MyPluginFactory and return a pointer to the newly created MyPlugin instance.
Reference: http://www.nuclex.org/articles/building-a-better-plugin-architecture (Option 1)
Public Member Functions | |
void | LoadPlugin (const std::string &name) |
void | Register (QModFactory< QModule > *MF) |
QModule * | CreateModule (const std::string &name, QSequence *s) |
void | Register (QModFactory< QReader > *MF) |
QReader * | CreateReader (const std::string &name, QSequence *s) |
void | Register (QModFactory< QWriter > *MF) |
QWriter * | CreateWriter (const std::string &name, QSequence *s) |
void | Register (QModFactory< QFilter > *MF) |
QFilter * | CreateFilter (const std::string &name, QSequence *s) |
void | Register (QModFactory< QDriver > *MF) |
QDriver * | CreateDriver (const std::string &name, QSequence *s) |
Static Public Member Functions | |
static QGeneralFactory & | GetInstance () |
Private Attributes | |
QDLLLoader * | fDLLLoader |
std::map< std::string, QModFactory< QModule > * > | fModules |
std::map< std::string, QModFactory< QFilter > * > | fFilters |
std::map< std::string, QModFactory< QReader > * > | fReaders |
std::map< std::string, QModFactory< QWriter > * > | fWriters |
std::map< std::string, QModFactory< QDriver > * > | fDrivers |