On 05/08/2014 08:20, Alex Peshkoff wrote:
>
> I want to suggest a first draft of [very restricted] IDL implementation
> for firebird that should solve all mentioned problems. As an additional
> non-mentioned before feature it solves the problem of making interface
> version upgrade compiler independent and reliable.
>
>
I tried to make some adjustments on the implementation part (to not need
to #include file multiple times), but I see a more big problem.
The implementation rely on method shadowing.
So if I have
Impl : Interface
{
void method1()
{
method2();
}
method2()
{
}
}
and
ImplSpecialization : Impl // Not supported by yours headers, but
should be IMO
{
method2()
{
}
}
When calling method1() from ImplSpecialization instance, it will call
Impl::method2 instead of ImplSpecialization::method2. Do you have some
suggestion for this?
I also think the version checks must be automatic at least in the C++
API, but calling getVersion in each call is not good. Maybe we can
always insert 10 or so pointers to notImplemented() method in the end of
each vtable.
Adriano
------------------------------------------------------------------------------
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