On 08/05/14 16:11, Adriano dos Santos Fernandes wrote:
> On 05/08/2014 08:20, Alex Peshkoff wrote:
>> As the result we get language-neutral compiler-independent ABI, with an
>> ability to generate a kind of headers for any language, with a machine
>> generated code to catch exceptions into status vector and raise them
>> from it (if language supports certainly), with our own structure of
>> virtual table and therefore absolutely stable and clear interface
>> version upgrade and (as additional small bonus) we nned not count
>> interface versions manually.
> I'll do a more detailed check later. This is very close with something I
> started implement before (using only macros) and stopped most due to:
> - How do you wanna going to catch-throw automatically and maintain the
> warnings in the status vector?

I want to have warnings in IStatus separate from errors (keeping them in 
same status vector IMO artifact of isc api). I think that after it this 
is not big problem. Am I missing something obvious? Certainly user must 
check for warnings himself.

> - Who is going to initialize status vectors?

This is not directly related here, but it seems possible to reset errors 
in IStatus right after copying them to StatusException but before 
throwing it. But still remains a problem - who will remove warnings from 
IStatus?

> - Will status vector always be checked or only depending on the
> functions return value?

Currently we have a lot of void functions, but certainly they can be 
made to return boolean, therefore avoiding a need in a check if non-zero 
is returned (non-zero can be also valid pointer to interface, number of 
bytes read from blob, etc.). I.e. if we may tune API to make error 
possible only in case of false/zero/NULL returned, we may in many cases 
avid a need in checking IStatus explicitly.



------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to