Boost logo

Boost :

From: Maciej Sobczak (prog_at_[hidden])
Date: 2006-12-05 17:20:59


Hartmut Kaiser wrote:

> FWIW: POSIX has been standardized without any mentioning, how the backend
> should be implemented (which file system to use etc.), STL has been
> standardized without any mentioning, how to implement a std::map etc.

Yes, but here it's not the question of "how", but "what".

In particular: will any given library vendor be obliged to provide
backend for Oracle? If yes, why Oracle and how to reference this as a
commercial produce from the ISO document? If not, what is the basis for
portable applications then?

> I think you should use a similar approach, just standardize the interface
> and leave the backend implementation to the vendor (what's possible, though,
> is to specify the interface to the backend as well, just to make these
> interchangeable).

This is already done. It's just that you can only use the backends that
are provided with the library. If the library implementation is only one
(SOCI), there is no problem, because the set of backends is known.

> Portability of a application should not be compromized in this scenario,
> because your application runs without changes on any platform supporting the
> standarized API not caring about the used backend.

So how will you connect to Oracle server then?

> In the end you don't care
> about the used filesystem as well...

Yes, but filesystem is abstracted away by the operating system and
that's why we don't care. This is not the case with database servers.
And you might even want to connect to two different servers from a
single program.

-- 
Maciej Sobczak : http://www.msobczak.com/
Programming    : http://www.msobczak.com/prog/

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk