diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-11-21 13:11:43 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-11-21 13:11:43 +0200 |
commit | e68f09c0e8c747474745f3438496e9352a199dbd (patch) | |
tree | b609371a129df96147aa77fc838ceca39b8be533 /odb/function-table.hxx | |
parent | fd5ba96357002c0964453fea38ee6a813cf02826 (diff) |
Add dynamic multi-database query support
Diffstat (limited to 'odb/function-table.hxx')
-rw-r--r-- | odb/function-table.hxx | 31 |
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; } }; } |