aboutsummaryrefslogtreecommitdiff
path: root/odb/connection.txx
blob: e82cafed86d6d2d1f6e25d0c99c2892740706d8a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// file      : odb/connection.txx
// copyright : Copyright (c) 2009-2017 Code Synthesis Tools CC
// 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);
  }
}