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();
152 const std::string &Name=std::string{}) :
153 namedclass{fullname(
"robusttransaction",isolation_tag::name()), Name},
154 internal::basic_robusttransaction(C, isolation_tag::name())
167#include "pqxx/compiler-internal-post.hxx"
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:26
isolation_level
Transaction isolation levels.
Definition: isolation.hxx:57
@ read_committed
Definition: isolation.hxx:59
connection_base abstract base class; represents a connection to a database.
Definition: connection_base.hxx:140
Abstract base class responsible for bracketing a backend transaction.
Definition: dbtransaction.hxx:63
Traits class to describe an isolation level; primarly for libpqxx's own use.
Definition: isolation.hxx:66
Helper base class for the robusttransaction class template.
Definition: robusttransaction.hxx:32
Slightly slower, better-fortified version of transaction.
Definition: robusttransaction.hxx:141
virtual ~robusttransaction() noexcept
Definition: robusttransaction.hxx:157
robusttransaction(connection_base &C, const std::string &Name=std::string{})
Constructor.
Definition: robusttransaction.hxx:150