summaryrefslogtreecommitdiff
path: root/odb/pgsql/connection.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/pgsql/connection.hxx')
-rw-r--r--odb/pgsql/connection.hxx183
1 files changed, 0 insertions, 183 deletions
diff --git a/odb/pgsql/connection.hxx b/odb/pgsql/connection.hxx
deleted file mode 100644
index d779273..0000000
--- a/odb/pgsql/connection.hxx
+++ /dev/null
@@ -1,183 +0,0 @@
-// file : odb/pgsql/connection.hxx
-// 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_factory;
-
- 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 (connection_factory&);
- connection (connection_factory&, PGconn* handle);
-
- database_type&
- database ();
-
- 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_;
- }
-
- // Server version as returned by PQserverVersion(), for example, 90200
- // (9.2.0), 90201 (9.2.1), 100000 (10.0), 110001 (11.1).
- //
- int
- server_version () const;
-
- 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:
- 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_;
- };
-
- class LIBODB_PGSQL_EXPORT connection_factory:
- public odb::connection_factory
- {
- public:
- typedef pgsql::database database_type;
-
- virtual void
- database (database_type&);
-
- database_type&
- database () {return *db_;}
-
- virtual connection_ptr
- connect () = 0;
-
- virtual
- ~connection_factory ();
-
- connection_factory (): db_ (0) {}
-
- // Needed to break the circular connection_factory-database dependency
- // (odb::connection_factory has the odb::database member).
- //
- protected:
- database_type* db_;
- };
- }
-}
-
-#include <odb/pgsql/connection.ixx>
-
-#include <odb/post.hxx>
-
-#endif // ODB_PGSQL_CONNECTION_HXX