From 18add9bb3064d8a994cc1b0c3a50c5df2dff3bf9 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 29 Nov 2012 11:32:44 +0200 Subject: Namespace management for static multi-database support Now in libodb the odb::core namespace is split into odb::common (database- independent stuff) and odb::core proper, which imports odb::common. Each database runtime now defines odb::::core namespace which also imports odb::common and adds the database-specific bits. The overall idea is that one can do using namespace odb::::core just like for odb::core. --- odb/pgsql/connection.hxx | 1 - odb/pgsql/exceptions.hxx | 8 +++++++- odb/pgsql/forward.hxx | 16 ++++++++++++++++ odb/pgsql/query.hxx | 5 +++++ odb/pgsql/statement.hxx | 2 +- 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/odb/pgsql/connection.hxx b/odb/pgsql/connection.hxx index 9c53b77..472ee63 100644 --- a/odb/pgsql/connection.hxx +++ b/odb/pgsql/connection.hxx @@ -7,7 +7,6 @@ #include -#include #include #include diff --git a/odb/pgsql/exceptions.hxx b/odb/pgsql/exceptions.hxx index 3cf89e4..6329424 100644 --- a/odb/pgsql/exceptions.hxx +++ b/odb/pgsql/exceptions.hxx @@ -12,7 +12,7 @@ #include #include - +#include #include namespace odb @@ -60,6 +60,12 @@ namespace odb private: std::string what_; }; + + namespace core + { + using pgsql::database_exception; + using pgsql::cli_exception; + } } } diff --git a/odb/pgsql/forward.hxx b/odb/pgsql/forward.hxx index e164bf1..d028f4d 100644 --- a/odb/pgsql/forward.hxx +++ b/odb/pgsql/forward.hxx @@ -13,6 +13,13 @@ namespace odb { namespace pgsql { + namespace core + { + using namespace odb::common; + } + + // + // class database; class connection; typedef details::shared_ptr connection_ptr; @@ -21,6 +28,15 @@ namespace odb class transaction; class tracer; + namespace core + { + using pgsql::database; + using pgsql::connection; + using pgsql::connection_ptr; + using pgsql::transaction; + using pgsql::statement; + } + // Implementation details. // enum statement_kind diff --git a/odb/pgsql/query.hxx b/odb/pgsql/query.hxx index 997f206..9d0b333 100644 --- a/odb/pgsql/query.hxx +++ b/odb/pgsql/query.hxx @@ -1866,6 +1866,11 @@ namespace odb { } }; + + namespace core + { + using pgsql::query; + } } // Derive odb::query from odb::pgsql::query so that it can be diff --git a/odb/pgsql/statement.hxx b/odb/pgsql/statement.hxx index c062fea..e406da3 100644 --- a/odb/pgsql/statement.hxx +++ b/odb/pgsql/statement.hxx @@ -10,10 +10,10 @@ #include #include // std::size_t -#include #include #include +#include #include #include // PGresult #include -- cgit v1.1