7namespace Stroika::Foundation::Database::SQL {
14 inline Transaction::Transaction (unique_ptr<IRep>&& rep)
17#if qStroika_Foundation_Debug_AssertExternallySynchronizedMutex_Enabled
18 this->_fThisAssertExternallySynchronized.SetAssertExternallySynchronizedMutexContext (_fRep->_fThisAssertExternallySynchronized.GetSharedContext ());
21 inline Transaction::~Transaction ()
24 if (_fRep !=
nullptr) {
25 if (_fRep->GetDisposition () == IRep::Disposition::eNone) {
30 using namespace Characters::Literals;
31 DbgTrace (
"Suppress rollback failure exception in SQL transaction: {}"_f, current_exception ());
37 inline void Transaction::Rollback ()
43 inline void Transaction::Commit ()
49 inline String Transaction::ToString ()
const
55 sb <<
" disposition: "sv << _fRep->GetDisposition ();
63 constexpr EnumNames<Stroika::Foundation::Database::SQL::Transaction::IRep::Disposition>
64 DefaultNames<Stroika::Foundation::Database::SQL::Transaction::IRep::Disposition>::k{{{
65 {Stroika::Foundation::Database::SQL::Transaction::IRep::Disposition::eNone, L
"None"},
66 {Stroika::Foundation::Database::SQL::Transaction::IRep::Disposition::eRolledBack, L
"Rolled-Back"},
67 {Stroika::Foundation::Database::SQL::Transaction::IRep::Disposition::eCompleted, L
"Completed"},
68 {Stroika::Foundation::Database::SQL::Transaction::IRep::Disposition::eFailed, L
"Failed"},
#define RequireNotNull(p)
Similar to String, but intended to more efficiently construct a String. Mutable type (String is large...
String is like std::u32string, except it is much easier to use, often much more space efficient,...
shared_lock< const AssertExternallySynchronizedMutex > ReadContext
Instantiate AssertExternallySynchronizedMutex::ReadContext to designate an area of code where protect...
unique_lock< AssertExternallySynchronizedMutex > WriteContext
Instantiate AssertExternallySynchronizedMutex::WriteContext to designate an area of code where protec...