Subject | RFC: External Engine API |
---|---|
Author | Adriano dos Santos Fernandes |
Post date | 2007-12-10T00:42:45Z |
We current have in non-official FB trees, many incarnations of external
engine plugins.
These codes are using C++ interfaces but:
1) Uses mix of new and old interfaces that will make more difficult to
create a new FB client C++ API - where the C++ API will be native and
the current C API calling it for backward compatibility
2) Changes to much client components way to connect to server in context
of external routine
3) Aren't very prepared for INTL stuff
So I'm proposing a C++ friendly interface, accessible by C and others
languages and future compatible with a C++ client API.
Proposed C++ API offers legacy handles to be used with current official API.
Engines loads(*) a server-side ISC-compatible library API and pass the
library name to the plugin.
Plugin catches database and transaction handles through the new API and
manipulate it with the ISC-compatible library.
* If we have an engine library (like fbembed) and the server is just an
executable loading this library, there is no need to have a proxy library.
This is just a draft for discussion. Only few data types are described.
There is few semantics documented.
Adriano
[Non-text portions of this message have been removed]
engine plugins.
These codes are using C++ interfaces but:
1) Uses mix of new and old interfaces that will make more difficult to
create a new FB client C++ API - where the C++ API will be native and
the current C API calling it for backward compatibility
2) Changes to much client components way to connect to server in context
of external routine
3) Aren't very prepared for INTL stuff
So I'm proposing a C++ friendly interface, accessible by C and others
languages and future compatible with a C++ client API.
Proposed C++ API offers legacy handles to be used with current official API.
Engines loads(*) a server-side ISC-compatible library API and pass the
library name to the plugin.
Plugin catches database and transaction handles through the new API and
manipulate it with the ISC-compatible library.
* If we have an engine library (like fbembed) and the server is just an
executable loading this library, there is no need to have a proxy library.
This is just a draft for discussion. Only few data types are described.
There is few semantics documented.
Adriano
[Non-text portions of this message have been removed]