libpqxx
transaction.hxx
1 
12 #ifndef PQXX_H_TRANSACTION
13 #define PQXX_H_TRANSACTION
14 
15 #include "pqxx/compiler-public.hxx"
16 #include "pqxx/compiler-internal-pre.hxx"
17 
18 #include "pqxx/dbtransaction.hxx"
19 
20 
21 /* Methods tested in eg. self-test program test1 are marked with "//[t01]"
22  */
23 
24 
25 namespace pqxx
26 {
27 
28 namespace internal
29 {
31 class PQXX_LIBEXPORT basic_transaction : public dbtransaction
32 {
33 protected:
34  basic_transaction( //[t01]
35  connection_base &C,
36  const std::string &IsolationLevel,
38 
39 private:
40  virtual void do_commit() override; //[t01]
41 };
42 } // namespace internal
43 
44 
49 
51 
79 template<
80  isolation_level ISOLATIONLEVEL=read_committed,
81  readwrite_policy READWRITE=read_write>
83 {
84 public:
86 
88 
93  explicit transaction(connection_base &C, const std::string &TName): //[t01]
94  namedclass(fullname("transaction", isolation_tag::name()), TName),
95  internal::basic_transaction(C, isolation_tag::name(), READWRITE)
96  { Begin(); }
97 
98  explicit transaction(connection_base &C) : //[t01]
99  transaction(C, "") {}
100 
101  virtual ~transaction() noexcept
102  { End(); }
103 };
104 
105 
108 
111 
113 
114 }
115 
116 #include "pqxx/compiler-internal-post.hxx"
117 
118 #endif
Definition: isolation.hxx:59
virtual ~transaction() noexcept
Definition: transaction.hxx:101
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:22
readwrite_policy
Definition: dbtransaction.hxx:24
transaction(connection_base &C, const std::string &TName)
Create a transaction.
Definition: transaction.hxx:93
transaction(connection_base &C)
Definition: transaction.hxx:98
Definition: dbtransaction.hxx:27
isolation_level
Transaction isolation levels.
Definition: isolation.hxx:56
Abstract base class responsible for bracketing a backend transaction.
Definition: dbtransaction.hxx:62
Traits class to describe an isolation level; primarly for libpqxx&#39;s own use.
Definition: isolation.hxx:65
Standard back-end transaction, templatized on isolation level.
Definition: transaction.hxx:82
Helper base class for the transaction class template.
Definition: transaction.hxx:31
connection_base abstract base class; represents a connection to a database.
Definition: connection_base.hxx:138