diff options
author | rtk0c <[email protected]> | 2022-06-27 18:27:13 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2022-06-27 18:27:13 -0700 |
commit | 8f0dda5eab181b0f14f2652b4e984aaaae3f258c (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /3rdparty/sqlitecpp/source/SQLiteCpp/Transaction.h | |
parent | fad6a88a13ab1f888ab25ad0aae19c1d63aa0623 (diff) |
Start from a clean slate
Diffstat (limited to '3rdparty/sqlitecpp/source/SQLiteCpp/Transaction.h')
-rw-r--r-- | 3rdparty/sqlitecpp/source/SQLiteCpp/Transaction.h | 95 |
1 files changed, 0 insertions, 95 deletions
diff --git a/3rdparty/sqlitecpp/source/SQLiteCpp/Transaction.h b/3rdparty/sqlitecpp/source/SQLiteCpp/Transaction.h deleted file mode 100644 index d7f26ca..0000000 --- a/3rdparty/sqlitecpp/source/SQLiteCpp/Transaction.h +++ /dev/null @@ -1,95 +0,0 @@ -/** - * @file Transaction.h - * @ingroup SQLiteCpp - * @brief A Transaction is way to group multiple SQL statements into an atomic secured operation. - * - * Copyright (c) 2012-2021 Sebastien Rombauts ([email protected]) - * - * Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt - * or copy at http://opensource.org/licenses/MIT) - */ -#pragma once - -#include <SQLiteCpp/Exception.h> - - -namespace SQLite -{ - - -// Forward declaration -class Database; - -/** - * @brief Transaction behaviors when opening an SQLite transaction. - * Names correspond directly to the behavior. - */ -enum class TransactionBehavior { - DEFERRED, - IMMEDIATE, - EXCLUSIVE, -}; - -/** - * @brief RAII encapsulation of a SQLite Transaction. - * - * A Transaction is a way to group multiple SQL statements into an atomic secured operation; - * either it succeeds, with all the changes committed to the database file, - * or if it fails, all the changes are rolled back to the initial state. - * - * Resource Acquisition Is Initialization (RAII) means that the Transaction - * begins in the constructor and is rollbacked in the destructor, so that there is - * no need to worry about memory management or the validity of the underlying SQLite Connection. - * - * This method also offers big performances improvements compared to individually executed statements. - * - * Thread-safety: a Transaction object shall not be shared by multiple threads, because : - * 1) in the SQLite "Thread Safe" mode, "SQLite can be safely used by multiple threads - * provided that no single database connection is used simultaneously in two or more threads." - * 2) the SQLite "Serialized" mode is not supported by SQLiteC++, - * because of the way it shares the underling SQLite precompiled statement - * in a custom shared pointer (See the inner class "Statement::Ptr"). - */ -class Transaction -{ -public: - /** - * @brief Begins the SQLite transaction using the default transaction behavior. - * - * @param[in] aDatabase the SQLite Database Connection - * - * Exception is thrown in case of error, then the Transaction is NOT initiated. - */ - explicit Transaction(Database& aDatabase); - - /** - * @brief Begins the SQLite transaction with the specified behavior. - * - * @param[in] aDatabase the SQLite Database Connection - * @param[in] behavior the requested transaction behavior - * - * Exception is thrown in case of error, then the Transaction is NOT initiated. - */ - explicit Transaction(Database& aDatabase, TransactionBehavior behavior); - - // Transaction is non-copyable - Transaction(const Transaction&) = delete; - Transaction& operator=(const Transaction&) = delete; - - /** - * @brief Safely rollback the transaction if it has not been committed. - */ - ~Transaction(); - - /** - * @brief Commit the transaction. - */ - void commit(); - -private: - Database& mDatabase; ///< Reference to the SQLite Database Connection - bool mbCommited; ///< True when commit has been called -}; - - -} // namespace SQLite |