9#include <userver/utils/impl/source_location.hpp>
10#include <userver/utils/statistics/rate.hpp>
12USERVER_NAMESPACE_BEGIN
31class GlobalEnabler
final {
33 explicit GlobalEnabler(
bool enable =
true);
36 GlobalEnabler(
const GlobalEnabler&) =
delete;
37 GlobalEnabler& operator=(
const GlobalEnabler&) =
delete;
41bool IsEnabled()
noexcept;
52 bool operator==(
const TaskId& other)
const;
53 bool operator!=(
const TaskId& other)
const;
56 std::thread::id created_thread_id_;
57 std::uint64_t thread_local_counter_;
63class TransactionLock
final {
65 TransactionLock() =
default;
66 TransactionLock(
const TransactionLock&) =
delete;
67 TransactionLock(TransactionLock&&)
noexcept;
68 TransactionLock operator=(
const TransactionLock&) =
delete;
69 TransactionLock& operator=(TransactionLock&&)
noexcept;
81 std::optional<impl::TaskId> task_id_;
96class CheckDisabler
final {
104 CheckDisabler(
const CheckDisabler&) =
delete;
105 CheckDisabler(CheckDisabler&&) =
delete;
106 CheckDisabler operator=(
const CheckDisabler&) =
delete;
107 CheckDisabler operator=(CheckDisabler&&) =
delete;
113 bool reenabled_ =
false;
117struct TransactionTrackerStatistics
final {