13 #ifndef PQXX_H_ROBUSTTRANSACTION 14 #define PQXX_H_ROBUSTTRANSACTION 16 #include "pqxx/compiler-public.hxx" 17 #include "pqxx/compiler-internal-pre.hxx" 19 #include "pqxx/dbtransaction.hxx" 42 const std::string &IsolationLevel,
43 const std::string &table_name=std::string{});
46 using IDType =
unsigned long;
47 IDType m_record_id = 0;
49 std::string m_log_table;
50 std::string m_sequence;
51 int m_backendpid = -1;
53 virtual void do_begin()
override;
54 virtual void do_commit()
override;
55 virtual void do_abort()
override;
57 PQXX_PRIVATE
void CreateLogTable();
58 PQXX_PRIVATE
void CreateTransactionRecord();
59 PQXX_PRIVATE std::string sql_delete()
const;
60 PQXX_PRIVATE
void DeleteTransactionRecord() noexcept;
61 PQXX_PRIVATE
bool CheckTransactionRecord();
139 template<isolation_level ISOLATIONLEVEL=read_committed>
152 const std::string &Name=std::string{}) :
153 namedclass{fullname(
"robusttransaction",isolation_tag::name()), Name},
167 #include "pqxx/compiler-internal-post.hxx" virtual ~robusttransaction() noexcept
Definition: robusttransaction.hxx:157
Helper base class for the robusttransaction class template.
Definition: robusttransaction.hxx:30
connection_base abstract base class; represents a connection to a database.
Definition: connection_base.hxx:139
robusttransaction(connection_base &C, const std::string &Name=std::string{})
Constructor.
Definition: robusttransaction.hxx:150
Slightly slower, better-fortified version of transaction.
Definition: robusttransaction.hxx:140
Abstract base class responsible for bracketing a backend transaction.
Definition: dbtransaction.hxx:62
Traits class to describe an isolation level; primarly for libpqxx's own use.
Definition: isolation.hxx:65
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:25