On 11/13/2015 01:17 PM, Vlad Khorsun wrote:
> 13.11.2015 11:21, Alex Peshkoff wrote:
>
>>> So the prototype will become:
>>>
>>> void FB_PLUGIN_ENTRY_POINT(IStatus*, IPluginInitialization*);
>> OK, let's pass here more generic interface. Though currently I do not
>> see something except getMaster() in it - let's be generic.
> There is PluginModule interface (implemented by plugin) and all info
> about plugin should be present there. For example, we could introduce
> special interface to provide info about plugin, say LoadedModuleInfo,
> and pass it into PluginModule when PluginModule is registered at
> PluginManager:
>
>
> interface LoadedModuleInfo : Versioned
> {
> const string getModuleName();
> ...
> }
It should be RefCounted to be saved in module, all the rest is OK and
looks much better than use of ModuleInitialization in FB_PLUGIN_ENTRY_POINT
Moreover - due to presence of versioning schema it can be added at any
moment when gets needed
> interface PluginModule : Versioned
> {
> void doClean();
> void setModuleInfo(LoadedModuleInfo info);
> }
>
> Plugin implementation could ignore passed info, store interface pointer
> for future use, or query all necessary info and release interface pointer.
So we have an agreement with adding Status to FB_PLUGIN_ENTRY_POINT, but
leaving Master as second parameter?
------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel