3#include <xrpl/beast/utility/instrumentation.h>
195template <
class Mutex>
203 XRPL_ASSERT(
plock_->owns_lock(),
"xrpl::ScopeUnlock::ScopeUnlock : mutex must be locked");
218template <
class Mutex>
bool executeOnDestruction_
ScopeExit(ScopeExit &&rhs) noexcept(std::is_nothrow_move_constructible_v< EF >||std::is_nothrow_copy_constructible_v< EF >)
ScopeExit(EFP &&f) noexcept
ScopeExit & operator=(ScopeExit &&)=delete
ScopeFail & operator=(ScopeFail &&)=delete
ScopeFail(EFP &&f) noexcept
ScopeFail(ScopeFail &&rhs) noexcept(std::is_nothrow_move_constructible_v< EF >||std::is_nothrow_copy_constructible_v< EF >)
bool executeOnDestruction_
ScopeSuccess & operator=(ScopeSuccess &&)=delete
ScopeSuccess(EFP &&f) noexcept(std::is_nothrow_constructible_v< EF, EFP >||std::is_nothrow_constructible_v< EF, EFP & >)
bool executeOnDestruction_
~ScopeSuccess() noexcept(noexcept(exitFunction_()))
ScopeSuccess(ScopeSuccess &&rhs) noexcept(std::is_nothrow_move_constructible_v< EF >||std::is_nothrow_copy_constructible_v< EF >)
Automatically unlocks and re-locks a unique_lock object.
~ScopeUnlock() noexcept(true)
ScopeUnlock & operator=(ScopeUnlock const &)=delete
std::unique_lock< Mutex > * plock_
ScopeUnlock(ScopeUnlock const &)=delete
ScopeUnlock(std::unique_lock< Mutex > &lock) noexcept(true)
T is_nothrow_copy_constructible_v
T is_nothrow_move_constructible_v
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
ScopeExit(EF) -> ScopeExit< EF >
ScopeUnlock(std::unique_lock< Mutex > &) -> ScopeUnlock< Mutex >
ScopeSuccess(EF) -> ScopeSuccess< EF >
ScopeFail(EF) -> ScopeFail< EF >
T uncaught_exceptions(T... args)