aboutsummaryrefslogtreecommitdiff
path: root/odb/function-table.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-11-21 13:11:43 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-11-21 13:11:43 +0200
commite68f09c0e8c747474745f3438496e9352a199dbd (patch)
treeb609371a129df96147aa77fc838ceca39b8be533 /odb/function-table.hxx
parentfd5ba96357002c0964453fea38ee6a813cf02826 (diff)
Add dynamic multi-database query support
Diffstat (limited to 'odb/function-table.hxx')
-rw-r--r--odb/function-table.hxx31
1 files changed, 24 insertions, 7 deletions
diff --git a/odb/function-table.hxx b/odb/function-table.hxx
index b1e5987..dea68c9 100644
--- a/odb/function-table.hxx
+++ b/odb/function-table.hxx
@@ -12,19 +12,36 @@
namespace odb
{
template <typename T, database_id DB>
- struct function_table_entry
+ struct object_function_table_entry
{
- typedef access::object_traits_impl<T, id_default> default_traits;
+ typedef access::object_traits_impl<T, id_common> common_traits;
- function_table_entry (
- const typename default_traits::function_table_type* t)
+ object_function_table_entry (
+ const typename common_traits::function_table_type* t)
{
- default_traits::function_table[DB] = t;
+ common_traits::function_table[DB] = t;
}
- ~function_table_entry ()
+ ~object_function_table_entry ()
{
- default_traits::function_table[DB] = 0;
+ common_traits::function_table[DB] = 0;
+ }
+ };
+
+ template <typename T, database_id DB>
+ struct view_function_table_entry
+ {
+ typedef access::view_traits_impl<T, id_common> common_traits;
+
+ view_function_table_entry (
+ const typename common_traits::function_table_type* t)
+ {
+ common_traits::function_table[DB] = t;
+ }
+
+ ~view_function_table_entry ()
+ {
+ common_traits::function_table[DB] = 0;
}
};
}