dbtransaction.hxx
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef PQXX_H_DBTRANSACTION
00020 #define PQXX_H_DBTRANSACTION
00021
00022 #include "pqxx/compiler-public.hxx"
00023 #include "pqxx/compiler-internal-pre.hxx"
00024
00025 #include "pqxx/transaction_base"
00026
00027 namespace pqxx
00028 {
00029
00030 enum readwrite_policy
00031 {
00032 read_only,
00033 read_write
00034 };
00035
00036
00038
00068 class PQXX_LIBEXPORT PQXX_NOVTABLE dbtransaction : public transaction_base
00069 {
00070 public:
00071 virtual ~dbtransaction();
00072
00073 protected:
00074 dbtransaction(
00075 connection_base &,
00076 const std::string &IsolationString,
00077 readwrite_policy rw=read_write);
00078
00079 explicit dbtransaction(
00080 connection_base &,
00081 bool direct=true,
00082 readwrite_policy rw=read_write);
00083
00084
00086 void start_backend_transaction();
00087
00089 virtual void do_begin();
00091 virtual result do_exec(const char Query[]);
00093 virtual void do_commit() =0;
00095
00101 virtual void do_abort() PQXX_OVERRIDE;
00102
00103 static std::string fullname(const std::string &ttype,
00104 const std::string &isolation);
00105
00106 private:
00108 std::string m_StartCmd;
00109 };
00110
00111
00112 }
00113
00114 #include "pqxx/compiler-internal-post.hxx"
00115
00116 #endif
00117