On 13/11/2015 08:25, Alex Peshkoff wrote: > 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? > > No agreement with me.
Current PluginModule seems to me like a workaround for destructor problems, now is being morphed in something else. It's currently not even required. Jaybird removed all the JNI code in favour of JNA, so the FB/Java plugin will load the Java code with minimal efforts and everything will be done in Java. So the essential information should be in the library entry point, which BTW seems as the best place for it in general, instead of abuse of OOP and documentation to inform how to do a simple thing. Adriano ------------------------------------------------------------------------------ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel