libpqxx  4.0.1
dbtransaction.hxx
1 /*-------------------------------------------------------------------------
2  *
3  * FILE
4  * pqxx/dbtransaction.hxx
5  *
6  * DESCRIPTION
7  * definition of the pqxx::dbtransaction abstract base class.
8  * pqxx::dbransaction defines a real transaction on the database
9  * DO NOT INCLUDE THIS FILE DIRECTLY; include pqxx/dbtransaction instead.
10  *
11  * Copyright (c) 2004-2009, Jeroen T. Vermeulen <jtv@xs4all.nl>
12  *
13  * See COPYING for copyright license. If you did not receive a file called
14  * COPYING with this source code, please notify the distributor of this mistake,
15  * or contact the author.
16  *
17  *-------------------------------------------------------------------------
18  */
19 #ifndef PQXX_H_DBTRANSACTION
20 #define PQXX_H_DBTRANSACTION
21 
22 #include "pqxx/compiler-public.hxx"
23 #include "pqxx/compiler-internal-pre.hxx"
24 
25 #include "pqxx/transaction_base"
26 
27 namespace pqxx
28 {
29 
31 {
34 };
35 
36 
38 
73 class PQXX_LIBEXPORT PQXX_NOVTABLE dbtransaction : public transaction_base
74 {
75 public:
76  virtual ~dbtransaction();
77 
78 protected:
81  const PGSTD::string &IsolationString,
83 
84  explicit dbtransaction(
86  bool direct=true,
88 
89 
91  void start_backend_transaction();
92 
94  virtual void do_begin(); //[t1]
96  virtual result do_exec(const char Query[]);
98  virtual void do_commit() =0;
100 
106  virtual void do_abort(); //[t13]
107 
108  static PGSTD::string fullname(const PGSTD::string &ttype,
109  const PGSTD::string &isolation);
110 
111 private:
113  PGSTD::string m_StartCmd;
114 };
115 
116 
117 } // namespace pqxx
118 
119 #include "pqxx/compiler-internal-post.hxx"
120 
121 #endif
122