aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-11-29 11:32:44 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-11-29 11:32:44 +0200
commit18add9bb3064d8a994cc1b0c3a50c5df2dff3bf9 (patch)
tree9764a04bcbb4970b7f9980b7e9ed6f938f91e91f
parent4d51a8a248bcbe50849b6c7682aaca1aa9ebff98 (diff)
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::<db>::core namespace which also imports odb::common and adds the database-specific bits. The overall idea is that one can do using namespace odb::<db>::core just like for odb::core.
-rw-r--r--odb/pgsql/connection.hxx1
-rw-r--r--odb/pgsql/exceptions.hxx8
-rw-r--r--odb/pgsql/forward.hxx16
-rw-r--r--odb/pgsql/query.hxx5
-rw-r--r--odb/pgsql/statement.hxx2
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 <odb/pre.hxx>
-#include <odb/forward.hxx>
#include <odb/connection.hxx>
#include <odb/details/shared-ptr.hxx>
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 <odb/exceptions.hxx>
#include <odb/pgsql/version.hxx>
-
+#include <odb/pgsql/forward.hxx>
#include <odb/pgsql/details/export.hxx>
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> 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 <string>
#include <cstddef> // std::size_t
-#include <odb/forward.hxx>
#include <odb/statement.hxx>
#include <odb/pgsql/version.hxx>
+#include <odb/pgsql/forward.hxx>
#include <odb/pgsql/binding.hxx>
#include <odb/pgsql/pgsql-fwd.hxx> // PGresult
#include <odb/pgsql/connection.hxx>