Let me tell a little more about this. 10.08.2014 17:55, Dmitry Yemanov wrote: > UDRs must use a regular application API for callbacks into the engine, > this is a design requirement.
It is a very reasonable requirement. But technically it means only two things: 1) Provider (engine) must be able to provide the same interface as Y-valve does. 2) Plugin interface must have a way for provider to provide the interface to plugin. What it _doesn't_ mean: 1) Y-valve must use the the same interface when talking with providers. It is convenient and logical but not necessary. I.e. provider may have two interfaces - one to be used by Y-valve and other - to be uses by plugins. First interface can be "more relaxed" because Y-valve and providers are known to be compiled with the same compiler. For example, it may let exceptions to be freely passed through. 2) Plugin interface must be a subset/superset of provider interface. I.e. interfaces used by engine to talk with plugin not necessary has anything common with interface used by plugin to talk with engine. That's why I don't understand why people during discussion about public API all of sudden remember about plugins at all. For example, my CDC plugin uses engine's interfaces for callbacks, but interface it provides to engine has nothing common with discussed new API. And, actually, it could use old API if the engine provide way to get it (accompanied with necessary handles) which is easy. -- WBR, SD. ------------------------------------------------------------------------------ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel