Hello, All. Instead of massaging of old error-prone events API, I suggest to redesign it in v.4 in this way:
IEventCallback interface has one method: FB_BOOLEAN onEvent(const char* eventName, int delta). It is called in background thread (which must be exactly documented) for every arrived event, that has non-zero delta, separately. If it return TRUE, processing of this event is re-queued by client library automatically. If it return FALSE, subscription to this event (only) is cancelled. IAttachment has two methods: void subscribe(IStatus, IEventCallback* callback, const char* eventName) and void unSubscribe(IStatus, const char* eventName). May be some magic value (like NULL) can be used to unsubscribe from all events. Ever after application has subscribed to an event, it has callback called every time when event happened until callback function return FALSE, connection closed or explicit unsubscription. Every event may have its own callback assigned or some events can share one - it is up to application. This way user application don't need to care about allocating EPB, storing and comparing it - everything is done by client library automatically. No more limit for number of events. -- WBR, SD. ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel