diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-06-13 21:29:25 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2021-06-13 21:29:25 +0100 |
commit | 3bc5964793f1700551b7db8107a939c98f1d1be1 (patch) | |
tree | 38c77c4e49d54a348e5cdeb402bdd63f2e29d477 /lib/dbConn.h | |
parent | Add operator* to RecordSet, shorthand for getting scalar from 0,0 (diff) | |
download | mygrate-3bc5964793f1700551b7db8107a939c98f1d1be1.tar.bz2 mygrate-3bc5964793f1700551b7db8107a939c98f1d1be1.tar.xz mygrate-3bc5964793f1700551b7db8107a939c98f1d1be1.zip |
Add transaction support
Diffstat (limited to 'lib/dbConn.h')
-rw-r--r-- | lib/dbConn.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/dbConn.h b/lib/dbConn.h index 3f14dcb..ffdd2e0 100644 --- a/lib/dbConn.h +++ b/lib/dbConn.h @@ -24,6 +24,28 @@ namespace MyGrate { virtual void query(const char * const, const std::initializer_list<DbValue> &) = 0; virtual DbPrepStmtPtr prepare(const char * const, std::size_t nParams) = 0; + + virtual void beginTx() = 0; + virtual void commitTx() = 0; + virtual void rollbackTx() = 0; + }; + + class Tx { + public: + explicit Tx(DbConn *); + Tx(const Tx &) = delete; + Tx(Tx &&) = delete; + ~Tx(); + + template<typename C> + auto + operator()(C && callback) + { + return callback(); + } + + private: + DbConn * conn; }; } |