summaryrefslogtreecommitdiff
path: root/libodb/odb/connection.txx
diff options
context:
space:
mode:
Diffstat (limited to 'libodb/odb/connection.txx')
-rw-r--r--libodb/odb/connection.txx44
1 files changed, 44 insertions, 0 deletions
diff --git a/libodb/odb/connection.txx b/libodb/odb/connection.txx
new file mode 100644
index 0000000..a082f14
--- /dev/null
+++ b/libodb/odb/connection.txx
@@ -0,0 +1,44 @@
+// file : odb/connection.txx
+// license : GNU GPL v2; see accompanying LICENSE file
+
+namespace odb
+{
+ template <typename T, database_id DB>
+ struct connection::query_<T, DB, class_object>
+ {
+ template <typename Q>
+ static prepared_query<T>
+ call (connection& c, const char* n, const Q& q)
+ {
+ // C++ compiler complaining there is no prepare_query()? Perhaps
+ // you forgot to specify --generate-prepared when compiling your
+ // persistent classes.
+ //
+ return prepared_query<T> (
+ object_traits_impl<T, DB>::prepare_query (c, n, q));
+ }
+ };
+
+ template <typename T, database_id DB>
+ struct connection::query_<T, DB, class_view>
+ {
+ template <typename Q>
+ static prepared_query<T>
+ call (connection& c, const char* n, const Q& q)
+ {
+ // C++ compiler complaining there is no prepare_query()? Perhaps
+ // you forgot to specify --generate-prepared when compiling your
+ // views.
+ //
+ return prepared_query<T> (
+ view_traits_impl<T, DB>::prepare_query (c, n, q));
+ }
+ };
+
+ template <typename P>
+ void connection::
+ params_deleter (void* p)
+ {
+ delete static_cast<P*> (p);
+ }
+}