#include "base/threading/sequence_local_storage_map.h"
#include <ostream>
#include <utility>
#include "base/check_op.h"
#include "base/sequence_token.h"
#include "third_party/abseil-cpp/absl/base/attributes.h"
namespace base {
namespace internal {
namespace {
ABSL_CONST_INIT thread_local SequenceLocalStorageMap*
current_sequence_local_storage = …;
}
SequenceLocalStorageMap::SequenceLocalStorageMap() = default;
SequenceLocalStorageMap::~SequenceLocalStorageMap() = default;
SequenceLocalStorageMap& SequenceLocalStorageMap::GetForCurrentThread() { … }
bool SequenceLocalStorageMap::IsSetForCurrentThread() { … }
bool SequenceLocalStorageMap::Has(int slot_id) const { … }
void SequenceLocalStorageMap::Reset(int slot_id) { … }
SequenceLocalStorageMap::Value* SequenceLocalStorageMap::Get(int slot_id) { … }
SequenceLocalStorageMap::Value* SequenceLocalStorageMap::Set(
int slot_id,
SequenceLocalStorageMap::ValueDestructorPair value_destructor_pair) { … }
SequenceLocalStorageMap::ValueDestructorPair::ValueDestructorPair()
: … { … }
SequenceLocalStorageMap::ValueDestructorPair::ValueDestructorPair(
ExternalValue value,
DestructorFunc* destructor)
: … { … }
SequenceLocalStorageMap::ValueDestructorPair::ValueDestructorPair(
InlineValue value,
DestructorFunc* destructor)
: … { … }
SequenceLocalStorageMap::ValueDestructorPair::~ValueDestructorPair() { … }
SequenceLocalStorageMap::ValueDestructorPair::ValueDestructorPair(
ValueDestructorPair&& value_destructor_pair)
: … { … }
SequenceLocalStorageMap::ValueDestructorPair&
SequenceLocalStorageMap::ValueDestructorPair::operator=(
ValueDestructorPair&& value_destructor_pair) { … }
operator bool()
ScopedSetSequenceLocalStorageMapForCurrentThread::
ScopedSetSequenceLocalStorageMapForCurrentThread(
SequenceLocalStorageMap* sequence_local_storage)
: … { … }
ScopedSetSequenceLocalStorageMapForCurrentThread::
~ScopedSetSequenceLocalStorageMapForCurrentThread() = default;
}
}