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