libpqxx
dbtransaction.hxx
1 
13 #ifndef PQXX_H_DBTRANSACTION
14 #define PQXX_H_DBTRANSACTION
15 
16 #include "pqxx/compiler-public.hxx"
17 #include "pqxx/compiler-internal-pre.hxx"
18 
19 #include "pqxx/transaction_base.hxx"
20 
21 namespace pqxx
22 {
23 
25 {
28 };
29 
30 
32 
62 class PQXX_LIBEXPORT PQXX_NOVTABLE dbtransaction : public transaction_base
63 {
64 public:
65  virtual ~dbtransaction();
66 
67 protected:
70  const std::string &IsolationString,
72 
73  explicit dbtransaction(
75  bool direct=true,
77 
78 
80  void start_backend_transaction();
81 
83  virtual void do_begin() override; //[t01]
85  virtual result do_exec(const char Query[]) override;
87  virtual void do_commit() override =0;
89 
95  virtual void do_abort() override; //[t13]
96 
97  static std::string fullname(const std::string &ttype,
98  const std::string &isolation);
99 
100 private:
102  std::string m_start_cmd;
103 };
104 
105 } // namespace pqxx
106 
107 #include "pqxx/compiler-internal-post.hxx"
108 
109 #endif
Result set containing data returned by a query or command.
Definition: result.hxx:69
connection_base abstract base class; represents a connection to a database.
Definition: connection_base.hxx:139
Interface definition (and common code) for "transaction" classes.
Definition: transaction_base.hxx:136
Definition: dbtransaction.hxx:27
Abstract base class responsible for bracketing a backend transaction.
Definition: dbtransaction.hxx:62
readwrite_policy
Definition: dbtransaction.hxx:24
Definition: dbtransaction.hxx:26
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:25