Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
absl::hash_internal::MixingHashState Class Reference

#include <hash.h>

Inheritance diagram for absl::hash_internal::MixingHashState:
Inheritance graph
[legend]

Public Member Functions

 MixingHashState (MixingHashState &&)=default
 
MixingHashStateoperator= (MixingHashState &&)=default
 

Static Public Member Functions

static MixingHashState combine_contiguous (MixingHashState hash_state, const unsigned char *first, size_t size)
 
template<typename T , absl::enable_if_t<!IntegralFastPath< T >::value, int > = 0>
static size_t hash (const T &value)
 
template<typename T , absl::enable_if_t< IntegralFastPath< T >::value, int > = 0>
static size_t hash (T value)
 
- Static Public Member Functions inherited from absl::hash_internal::HashStateBase< MixingHashState >
static MixingHashState combine (MixingHashState state)
 
static MixingHashState combine (MixingHashState state)
 
static MixingHashState combine (MixingHashState state, const T &value, const Ts &... values)
 
static MixingHashState combine (MixingHashState state, const T &value, const Ts &... values)
 
static MixingHashState combine_contiguous (MixingHashState state, const T *data, size_t size)
 
static MixingHashState combine_contiguous (MixingHashState state, const T *data, size_t size)
 
static MixingHashState combine_unordered (MixingHashState state, I begin, I end)
 

Private Types

template<typename T >
using IntegralFastPath = conjunction< std::is_integral< T >, is_uniquely_represented< T > >
 
using uint128 = absl::uint128
 

Private Member Functions

 MixingHashState ()
 
 MixingHashState (const MixingHashState &)=default
 
 MixingHashState (uint64_t state)
 

Static Private Member Functions

static uint64_t CombineContiguousImpl (uint64_t state, const unsigned char *first, size_t len, std::integral_constant< int, 4 >)
 
static uint64_t CombineContiguousImpl (uint64_t state, const unsigned char *first, size_t len, std::integral_constant< int, 8 >)
 
static uint64_t CombineLargeContiguousImpl32 (uint64_t state, const unsigned char *first, size_t len)
 
static uint64_t CombineLargeContiguousImpl64 (uint64_t state, const unsigned char *first, size_t len)
 
static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t Hash64 (const unsigned char *data, size_t len)
 
static uint64_t LowLevelHashImpl (const unsigned char *data, size_t len)
 
static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t Mix (uint64_t state, uint64_t v)
 
static uint32_t Read1To3 (const unsigned char *p, size_t len)
 
static uint64_t Read4To8 (const unsigned char *p, size_t len)
 
static std::pair< uint64_t, uint64_tRead9To16 (const unsigned char *p, size_t len)
 
template<typename CombinerT >
static MixingHashState RunCombineUnordered (MixingHashState state, CombinerT combiner)
 
static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t Seed ()
 

Private Attributes

uint64_t state_
 

Static Private Attributes

static constexpr uint64_t kMul
 
static const void *const kSeed = &kSeed
 

Friends

class absl::HashState
 
class MixingHashState::HashStateBase
 

Additional Inherited Members

- Public Types inherited from absl::hash_internal::HashStateBase< MixingHashState >
using AbslInternalPiecewiseCombiner = PiecewiseCombiner
 
using AbslInternalPiecewiseCombiner = PiecewiseCombiner
 
using is_hashable = absl::hash_internal::is_hashable< T >
 

Detailed Description

Definition at line 927 of file abseil-cpp/absl/hash/internal/hash.h.

Member Typedef Documentation

◆ IntegralFastPath

template<typename T >
using absl::hash_internal::MixingHashState::IntegralFastPath = conjunction<std::is_integral<T>, is_uniquely_represented<T> >
private

Definition at line 942 of file abseil-cpp/absl/hash/internal/hash.h.

◆ uint128

Definition at line 933 of file abseil-cpp/absl/hash/internal/hash.h.

Constructor & Destructor Documentation

◆ MixingHashState() [1/4]

absl::hash_internal::MixingHashState::MixingHashState ( MixingHashState &&  )
default

◆ MixingHashState() [2/4]

absl::hash_internal::MixingHashState::MixingHashState ( )
inlineprivate

Definition at line 983 of file abseil-cpp/absl/hash/internal/hash.h.

◆ MixingHashState() [3/4]

absl::hash_internal::MixingHashState::MixingHashState ( const MixingHashState )
privatedefault

◆ MixingHashState() [4/4]

absl::hash_internal::MixingHashState::MixingHashState ( uint64_t  state)
inlineexplicitprivate

Definition at line 1016 of file abseil-cpp/absl/hash/internal/hash.h.

Member Function Documentation

◆ combine_contiguous()

static MixingHashState absl::hash_internal::MixingHashState::combine_contiguous ( MixingHashState  hash_state,
const unsigned char *  first,
size_t  size 
)
inlinestatic

Definition at line 953 of file abseil-cpp/absl/hash/internal/hash.h.

◆ CombineContiguousImpl() [1/2]

uint64_t absl::hash_internal::MixingHashState::CombineContiguousImpl ( uint64_t  state,
const unsigned char *  first,
size_t  len,
std::integral_constant< int, 4 >   
)
inlinestaticprivate

Definition at line 1151 of file abseil-cpp/absl/hash/internal/hash.h.

◆ CombineContiguousImpl() [2/2]

uint64_t absl::hash_internal::MixingHashState::CombineContiguousImpl ( uint64_t  state,
const unsigned char *  first,
size_t  len,
std::integral_constant< int, 8 >   
)
inlinestaticprivate

Definition at line 1174 of file abseil-cpp/absl/hash/internal/hash.h.

◆ CombineLargeContiguousImpl32()

uint64_t absl::hash_internal::MixingHashState::CombineLargeContiguousImpl32 ( uint64_t  state,
const unsigned char *  first,
size_t  len 
)
staticprivate

Definition at line 21 of file abseil-cpp/absl/hash/internal/hash.cc.

◆ CombineLargeContiguousImpl64()

uint64_t absl::hash_internal::MixingHashState::CombineLargeContiguousImpl64 ( uint64_t  state,
const unsigned char *  first,
size_t  len 
)
staticprivate

Definition at line 35 of file abseil-cpp/absl/hash/internal/hash.cc.

◆ hash() [1/2]

template<typename T , absl::enable_if_t<!IntegralFastPath< T >::value, int > = 0>
static size_t absl::hash_internal::MixingHashState::hash ( const T value)
inlinestatic

Definition at line 976 of file abseil-cpp/absl/hash/internal/hash.h.

◆ hash() [2/2]

template<typename T , absl::enable_if_t< IntegralFastPath< T >::value, int > = 0>
static size_t absl::hash_internal::MixingHashState::hash ( T  value)
inlinestatic

Definition at line 970 of file abseil-cpp/absl/hash/internal/hash.h.

◆ Hash64()

static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t absl::hash_internal::MixingHashState::Hash64 ( const unsigned char *  data,
size_t  len 
)
inlinestaticprivate

Definition at line 1110 of file abseil-cpp/absl/hash/internal/hash.h.

◆ LowLevelHashImpl()

uint64_t absl::hash_internal::MixingHashState::LowLevelHashImpl ( const unsigned char *  data,
size_t  len 
)
staticprivate

Definition at line 62 of file abseil-cpp/absl/hash/internal/hash.cc.

◆ Mix()

static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t absl::hash_internal::MixingHashState::Mix ( uint64_t  state,
uint64_t  v 
)
inlinestaticprivate

Definition at line 1092 of file abseil-cpp/absl/hash/internal/hash.h.

◆ operator=()

MixingHashState& absl::hash_internal::MixingHashState::operator= ( MixingHashState &&  )
default

◆ Read1To3()

static uint32_t absl::hash_internal::MixingHashState::Read1To3 ( const unsigned char *  p,
size_t  len 
)
inlinestaticprivate

Definition at line 1074 of file abseil-cpp/absl/hash/internal/hash.h.

◆ Read4To8()

static uint64_t absl::hash_internal::MixingHashState::Read4To8 ( const unsigned char *  p,
size_t  len 
)
inlinestaticprivate

Definition at line 1059 of file abseil-cpp/absl/hash/internal/hash.h.

◆ Read9To16()

static std::pair<uint64_t, uint64_t> absl::hash_internal::MixingHashState::Read9To16 ( const unsigned char *  p,
size_t  len 
)
inlinestaticprivate

Definition at line 1044 of file abseil-cpp/absl/hash/internal/hash.h.

◆ RunCombineUnordered()

template<typename CombinerT >
static MixingHashState absl::hash_internal::MixingHashState::RunCombineUnordered ( MixingHashState  state,
CombinerT  combiner 
)
inlinestaticprivate

Definition at line 988 of file abseil-cpp/absl/hash/internal/hash.h.

◆ Seed()

static ABSL_ATTRIBUTE_ALWAYS_INLINE uint64_t absl::hash_internal::MixingHashState::Seed ( )
inlinestaticprivate

Definition at line 1135 of file abseil-cpp/absl/hash/internal/hash.h.

Friends And Related Function Documentation

◆ absl::HashState

friend class absl::HashState
friend

Definition at line 1008 of file abseil-cpp/absl/hash/internal/hash.h.

◆ MixingHashState::HashStateBase

friend class MixingHashState::HashStateBase
friend

Definition at line 985 of file abseil-cpp/absl/hash/internal/hash.h.

Member Data Documentation

◆ kMul

constexpr uint64_t absl::hash_internal::MixingHashState::kMul
staticconstexprprivate
Initial value:
=
sizeof(size_t) == 4 ? uint64_t{0xcc9e2d51}
: uint64_t{0x9ddfea08eb382d69}

Definition at line 936 of file abseil-cpp/absl/hash/internal/hash.h.

◆ kSeed

const ABSL_CONST_INIT void *const absl::hash_internal::MixingHashState::kSeed = &kSeed
staticprivate

Definition at line 1145 of file abseil-cpp/absl/hash/internal/hash.h.

◆ state_

uint64_t absl::hash_internal::MixingHashState::state_
private

Definition at line 1147 of file abseil-cpp/absl/hash/internal/hash.h.


The documentation for this class was generated from the following files:
uint64_t
unsigned __int64 uint64_t
Definition: stdint-msvc2008.h:90


grpc
Author(s):
autogenerated on Fri May 16 2025 03:02:51