|
We need to design a small number of well known extern "C" entry points that are exported from each loadable module. These entry points will be responsible for things like configuring the module, instantiating objects, vtable exchange, and module lifecycle. We will also need some level of meta protocol, probably providing at least:
- A mechanism for describing a factory for a singleton instance of a specific interface
- A mechanism for describing a factory for any number of instances of a specific interface.
- A mechanism for describing multiple factories.
This protocol should be as simple as possible. We aren't trying to re-invent COM here. But we will need to provide support code to make it easy to properly implement the protocol while developing a plugin.
|