From be97326d67365e16175cc599e23348feaf80e0fe Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 8 Oct 2012 16:09:07 +0200 Subject: Ground work for multi-database support All generated code now includes database id. The database-specific database class interface has been updated to include all the database operations. The database-specific tests now use this interface. --- odb/forward.hxx | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'odb/forward.hxx') diff --git a/odb/forward.hxx b/odb/forward.hxx index 4c5e4b9..ff4a531 100644 --- a/odb/forward.hxx +++ b/odb/forward.hxx @@ -7,6 +7,8 @@ #include +#include // std::size_t + #include #include @@ -42,25 +44,50 @@ namespace odb // Implementation details. // + // Keep real databases first since their enumerators are used as array + // indexes + // + enum database_id + { + id_mysql, + id_sqlite, + id_pgsql, + id_oracle, + id_mssql, + id_default + }; + + // Number of real databases in the database_id enum. + // + const std::size_t database_count = id_default; + + // Traits. + // class access { public: template class object_traits; + template + class object_traits_impl; + template class object_factory; template class view_traits; + template + class view_traits_impl; + template class view_factory; template class pointer_factory; - template + template class composite_value_traits; template @@ -70,9 +97,15 @@ namespace odb template struct object_traits; + template + struct object_traits_impl; + template struct view_traits; + template + struct view_traits_impl; + // Cache traits. // template struct no_id_pointer_cache_traits; -- cgit v1.1