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

Reply via email to