On 11/18/14 03:50, Adriano dos Santos Fernandes wrote:
> Hi!
>
> Currently the API is problematic in any non usage scenario different
> than one used internally in FB code.
>
> We have the "I" classes witch are typedefs for a "default" policy, a
> policy that is just not suitable for C++, as it ignore exceptions and
> avoids every piece of the policy idea.
>
> Even if the code is improved to support exceptions, it will be our own
> exception class, not something C++ people is going to use.
>
> We have the "I" classes used in places they should not, like structs,
> typedefs, prototypes, meaning these items are bound to an unique policy.

Adriano, probably I did not understand you correctly. Please provide one 
or two samples.

> That's not what the cloop utility has designed for.
>
> We should have everything (structs - exception GDS_QUAD and legacy
> things), C++ concrete classes (the message code), etc inside the API class.
>
> But then, every use of the classes need a "prefix::". Generally, the
> user is going to do this:
>
> #include "firebird/Api.h"
>
> typedef ::Firebird::Api<SomePolicy> fb;
>
> fb::Attachment* attachment = ...
>
> This is one common way to use C++, many people does not "include"
> namespaces, but alias then to something more easy to type, when it's
> not. Most of time, this is really with namespaces, but in our case it
> will be a class.

Do you suggest it for external usage or internally?

> As a class, one cannot use (using keyword) they items. Also, as there
> are templates, the C++ version we use does not allow to typedef the
> items to extract them from the prefix class.
>
> If you do not want this, there is still alternative, but it's crap IMO.
> It consists of allowing a header to be included multiple times, and
> expect the user to write a piece of code (the policy in a namespace) and
> include that header in the middle of they code.

Adriano, looks like I can't understand you. Can you explain in few words 
- what problem are you solving now? How to provide people a comfortable 
way of writing a policy?




------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to