11 #ifndef PQXX_H_TRANSACTOR 12 #define PQXX_H_TRANSACTOR 14 #include "pqxx/compiler-public.hxx" 15 #include "pqxx/internal/compiler-internal-pre.hxx" 17 #include "pqxx/connection.hxx" 18 #include "pqxx/transaction.hxx" 96 template<
typename TRANSACTION_CALLBACK>
97 inline auto perform(TRANSACTION_CALLBACK
const &callback,
int attempts = 3)
98 -> decltype(callback())
101 throw std::invalid_argument{
102 "Zero or negative number of attempts passed to pqxx::perform()."};
104 for (; attempts > 0; --attempts)
144 #include "pqxx/internal/compiler-internal-post.hxx" auto perform(TRANSACTION_CALLBACK const &callback, int attempts=3) -> decltype(callback())
Simple way to execute a transaction with automatic retry.
Definition: transactor.hxx:97
The home of all libpqxx classes, functions, templates, etc.
Definition: array.hxx:25
The backend saw itself forced to roll back the ongoing transaction.
Definition: except.hxx:113
Exception class for lost or failed backend connection.
Definition: except.hxx:67
We can't tell whether our last statement succeeded.
Definition: except.hxx:135
"Help, I don't know whether transaction was committed successfully!"
Definition: except.hxx:106
Internal error in libpqxx library.
Definition: except.hxx:149