diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-09-05 10:20:47 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-09-05 10:20:47 +0200 |
commit | 9c275a93cec797a021571ba8545906e0b4ffbfbc (patch) | |
tree | d1a697417df10bd7b5fc35fa795d20855047c5e9 /odb/query.hxx | |
parent | 713b3a62d97c6bea7c23597094af6b2439314b8c (diff) |
Support for views; native part
Diffstat (limited to 'odb/query.hxx')
-rw-r--r-- | odb/query.hxx | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/odb/query.hxx b/odb/query.hxx index 5cdeb6f..780ae39 100644 --- a/odb/query.hxx +++ b/odb/query.hxx @@ -12,8 +12,36 @@ namespace odb { - template <typename T, - typename Q = typename object_traits<T>::query_base_type> + template <typename T, class_kind kind = class_traits<T>::kind> + struct query_selector; + + template <typename T> + struct query_selector<T, class_object> + { + typedef typename object_traits<T>::query_base_type base_type; + typedef typename object_traits<T>::query_type type; + + static const char* + table_name () + { + return object_traits<T>::table_name; + } + }; + + template <typename T> + struct query_selector<T, class_view> + { + typedef typename view_traits<T>::query_base_type base_type; + typedef typename view_traits<T>::query_type type; + + static const char* + table_name () + { + return ""; + } + }; + + template <typename T, typename Q = typename query_selector<T>::base_type> class query; namespace core |