/usr/include/odb/pgsql/connection.hxx is in libodb-pgsql-dev 2.4.0-1+b1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | // file : odb/pgsql/connection.hxx
// copyright : Copyright (c) 2005-2015 Code Synthesis Tools CC
// license : GNU GPL v2; see accompanying LICENSE file
#ifndef ODB_PGSQL_CONNECTION_HXX
#define ODB_PGSQL_CONNECTION_HXX
#include <odb/pre.hxx>
#include <odb/connection.hxx>
#include <odb/details/shared-ptr.hxx>
#include <odb/details/unique-ptr.hxx>
#include <odb/pgsql/version.hxx>
#include <odb/pgsql/forward.hxx>
#include <odb/pgsql/query.hxx>
#include <odb/pgsql/tracer.hxx>
#include <odb/pgsql/transaction-impl.hxx>
#include <odb/pgsql/auto-handle.hxx>
#include <odb/pgsql/pgsql-fwd.hxx> // PGconn
#include <odb/pgsql/details/export.hxx>
namespace odb
{
namespace pgsql
{
class statement_cache;
class connection;
typedef details::shared_ptr<connection> connection_ptr;
class LIBODB_PGSQL_EXPORT connection: public odb::connection
{
public:
typedef pgsql::statement_cache statement_cache_type;
typedef pgsql::database database_type;
virtual
~connection ();
connection (database_type&);
connection (database_type&, PGconn* handle);
database_type&
database ()
{
return db_;
}
public:
virtual transaction_impl*
begin ();
public:
using odb::connection::execute;
virtual unsigned long long
execute (const char* statement, std::size_t length);
// Query preparation.
//
public:
template <typename T>
prepared_query<T>
prepare_query (const char* name, const char*);
template <typename T>
prepared_query<T>
prepare_query (const char* name, const std::string&);
template <typename T>
prepared_query<T>
prepare_query (const char* name, const pgsql::query_base&);
template <typename T>
prepared_query<T>
prepare_query (const char* name, const odb::query_base&);
// SQL statement tracing.
//
public:
typedef pgsql::tracer tracer_type;
void
tracer (tracer_type& t)
{
odb::connection::tracer (t);
}
void
tracer (tracer_type* t)
{
odb::connection::tracer (t);
}
using odb::connection::tracer;
public:
bool
failed () const
{
return failed_;
}
void
mark_failed ()
{
failed_ = true;
}
public:
PGconn*
handle ()
{
return handle_;
}
statement_cache_type&
statement_cache ()
{
return *statement_cache_;
}
private:
connection (const connection&);
connection& operator= (const connection&);
private:
void
init ();
private:
friend class transaction_impl; // invalidate_results()
private:
// Needed to break the circular connection-database dependency
// (odb::connection has the odb::database member).
//
database_type& db_;
auto_handle<PGconn> handle_;
bool failed_;
// Keep statement_cache_ after handle_ so that it is destroyed before
// the connection is closed.
//
details::unique_ptr<statement_cache_type> statement_cache_;
};
}
}
#include <odb/pgsql/connection.ixx>
#include <odb/post.hxx>
#endif // ODB_PGSQL_CONNECTION_HXX
|