14 template <
typename THIS_CONTAINER,
typename BASE_CONTAINER>
15 inline void HashTableBasedContainer<THIS_CONTAINER, BASE_CONTAINER>::ReHash (
size_t newBucketCount)
17 using _SafeReadWriteRepAccessor =
typename THIS_CONTAINER::template _SafeReadWriteRepAccessor<typename THIS_CONTAINER::IImplRepBase_>;
18 _SafeReadWriteRepAccessor{
this}._GetWriteableRep ().ReHash (newBucketCount);
20 template <
typename THIS_CONTAINER,
typename BASE_CONTAINER>
21 inline void HashTableBasedContainer<THIS_CONTAINER, BASE_CONTAINER>::ReHashIfNeeded ()
23 using _SafeReadWriteRepAccessor =
typename THIS_CONTAINER::template _SafeReadWriteRepAccessor<typename THIS_CONTAINER::IImplRepBase_>;
24 _SafeReadWriteRepAccessor{
this}._GetWriteableRep ().ReHashIfNeeded ();
26 template <
typename THIS_CONTAINER,
typename BASE_CONTAINER>
27 inline size_t HashTableBasedContainer<THIS_CONTAINER, BASE_CONTAINER>::bucket_count ()
const
29 using _SafeReadRepAccessor =
typename THIS_CONTAINER ::template _SafeReadRepAccessor<typename THIS_CONTAINER::IImplRepBase_>;
30 return _SafeReadRepAccessor{
this}._ConstGetRep ().bucket_count ();
32 template <
typename THIS_CONTAINER,
typename BASE_CONTAINER>
33 inline size_t HashTableBasedContainer<THIS_CONTAINER, BASE_CONTAINER>::bucket_size (
size_t bucketIdx)
const
35 using _SafeReadRepAccessor =
typename THIS_CONTAINER::template _SafeReadRepAccessor<typename THIS_CONTAINER::IImplRepBase_>;
36 return _SafeReadRepAccessor{
this}._ConstGetRep ().bucket_size (bucketIdx);
38 template <
typename THIS_CONTAINER,
typename BASE_CONTAINER>
39 inline float HashTableBasedContainer<THIS_CONTAINER, BASE_CONTAINER>::load_factor ()
const
41 using _SafeReadRepAccessor =
typename THIS_CONTAINER::template _SafeReadRepAccessor<typename THIS_CONTAINER::IImplRepBase_>;
42 return _SafeReadRepAccessor{
this}._ConstGetRep ().load_factor ();
44 template <
typename THIS_CONTAINER,
typename BASE_CONTAINER>
45 inline float HashTableBasedContainer<THIS_CONTAINER, BASE_CONTAINER>::max_load_factor ()
const
47 using _SafeReadRepAccessor =
typename THIS_CONTAINER::template _SafeReadRepAccessor<typename THIS_CONTAINER::IImplRepBase_>;
48 return _SafeReadRepAccessor{
this}._ConstGetRep ().max_load_factor ();
50 template <
typename THIS_CONTAINER,
typename BASE_CONTAINER>
51 inline void HashTableBasedContainer<THIS_CONTAINER, BASE_CONTAINER>::max_load_factor (
float mlf)
53 using _SafeReadWriteRepAccessor =
typename THIS_CONTAINER::template _SafeReadWriteRepAccessor<typename THIS_CONTAINER::IImplRepBase_>;
54 _SafeReadWriteRepAccessor{
this}._GetWriteableRep ().max_load_factor (mlf);
62 template <
typename THIS_CONTAINER_REP,
typename BASE_CONTAINER_REP>
63 void HashTableBasedContainerRepImpl<THIS_CONTAINER_REP, BASE_CONTAINER_REP>::ReHash (
size_t newBucketCount)
66 Debug::UncheckedDynamicCast<THIS_CONTAINER_REP*> (
this)->fData_.ReHash (newBucketCount);
67 Debug::UncheckedDynamicCast<THIS_CONTAINER_REP*> (
this)->fChangeCounts_.PerformedChange ();
69 template <
typename THIS_CONTAINER_REP,
typename BASE_CONTAINER_REP>
70 void HashTableBasedContainerRepImpl<THIS_CONTAINER_REP, BASE_CONTAINER_REP>::ReHashIfNeeded ()
73 Debug::UncheckedDynamicCast<THIS_CONTAINER_REP*> (
this)->fData_.ReHashIfNeeded ();
74 Debug::UncheckedDynamicCast<THIS_CONTAINER_REP*> (
this)->fChangeCounts_.PerformedChange ();
76 template <
typename THIS_CONTAINER_REP,
typename BASE_CONTAINER_REP>
77 size_t HashTableBasedContainerRepImpl<THIS_CONTAINER_REP, BASE_CONTAINER_REP>::bucket_count ()
const
80 return Debug::UncheckedDynamicCast<const THIS_CONTAINER_REP*> (
this)->fData_.bucket_count ();
82 template <
typename THIS_CONTAINER_REP,
typename BASE_CONTAINER_REP>
83 size_t HashTableBasedContainerRepImpl<THIS_CONTAINER_REP, BASE_CONTAINER_REP>::bucket_size (
size_t bucketIdx)
const
86 return Debug::UncheckedDynamicCast<const THIS_CONTAINER_REP*> (
this)->fData_.bucket_size (bucketIdx);
88 template <
typename THIS_CONTAINER_REP,
typename BASE_CONTAINER_REP>
89 float HashTableBasedContainerRepImpl<THIS_CONTAINER_REP, BASE_CONTAINER_REP>::load_factor ()
const
92 return Debug::UncheckedDynamicCast<const THIS_CONTAINER_REP*> (
this)->fData_.load_factor ();
94 template <
typename THIS_CONTAINER_REP,
typename BASE_CONTAINER_REP>
95 float HashTableBasedContainerRepImpl<THIS_CONTAINER_REP, BASE_CONTAINER_REP>::max_load_factor ()
const
98 return Debug::UncheckedDynamicCast<const THIS_CONTAINER_REP*> (
this)->fData_.max_load_factor ();
100 template <
typename THIS_CONTAINER_REP,
typename BASE_CONTAINER_REP>
101 void HashTableBasedContainerRepImpl<THIS_CONTAINER_REP, BASE_CONTAINER_REP>::max_load_factor (
float mlf)
104 Debug::UncheckedDynamicCast<THIS_CONTAINER_REP*> (
this)->fData_.max_load_factor (mlf);
105 Debug::UncheckedDynamicCast<THIS_CONTAINER_REP*> (
this)->fChangeCounts_.PerformedChange ();
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...