Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HashRepartitionStream.cs
Go to the documentation of this file.
1
using
System.Collections.Generic
;
2
3
namespace
System.Linq.Parallel
;
4
5
internal
abstract
class
HashRepartitionStream
<
TInputOutput
,
THashKey
, TOrderKey> :
PartitionedStream
<Pair<TInputOutput, THashKey>, TOrderKey>
6
{
7
private
readonly
IEqualityComparer<THashKey>
_keyComparer
;
8
9
private
readonly
IEqualityComparer<TInputOutput>
_elementComparer
;
10
11
private
readonly
int
_distributionMod
;
12
13
internal
HashRepartitionStream
(
int
partitionsCount
,
IComparer<TOrderKey>
orderKeyComparer
,
IEqualityComparer<THashKey>
hashKeyComparer
,
IEqualityComparer<TInputOutput>
elementComparer
)
14
:
base
(
partitionsCount
,
orderKeyComparer
,
OrdinalIndexState
.
Shuffled
)
15
{
16
_keyComparer
=
hashKeyComparer
;
17
_elementComparer
=
elementComparer
;
18
checked
19
{
20
for
(
_distributionMod
= 503;
_distributionMod
<
partitionsCount
;
_distributionMod
*= 2)
21
{
22
}
23
}
24
}
25
26
internal
int
GetHashCode
(
TInputOutput
element)
27
{
28
return
(0
x7FFFFFFF
& ((element !=
null
) ? (
_elementComparer
?.
GetHashCode
(element) ?? element.GetHashCode()) : 0)) %
_distributionMod
;
29
}
30
31
internal
int
GetHashCode
(
THashKey
key
)
32
{
33
return
(0
x7FFFFFFF
& ((
key
!=
null
) ? (
_keyComparer
?.
GetHashCode
(
key
) ??
key
.GetHashCode()) : 0)) %
_distributionMod
;
34
}
35
}
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.Linq.Parallel.HashRepartitionStream._keyComparer
readonly IEqualityComparer< THashKey > _keyComparer
Definition
HashRepartitionStream.cs:7
System.Linq.Parallel.HashRepartitionStream._elementComparer
readonly IEqualityComparer< TInputOutput > _elementComparer
Definition
HashRepartitionStream.cs:9
System.Linq.Parallel.HashRepartitionStream._distributionMod
readonly int _distributionMod
Definition
HashRepartitionStream.cs:11
System.Linq.Parallel.HashRepartitionStream.HashRepartitionStream
HashRepartitionStream(int partitionsCount, IComparer< TOrderKey > orderKeyComparer, IEqualityComparer< THashKey > hashKeyComparer, IEqualityComparer< TInputOutput > elementComparer)
Definition
HashRepartitionStream.cs:13
System.Linq.Parallel.HashRepartitionStream.GetHashCode
int GetHashCode(THashKey key)
Definition
HashRepartitionStream.cs:31
System.Linq.Parallel.HashRepartitionStream.GetHashCode
int GetHashCode(TInputOutput element)
Definition
HashRepartitionStream.cs:26
System.Linq.Parallel.HashRepartitionStream
Definition
HashRepartitionStream.cs:6
System.Linq.Parallel.PartitionedStream
Definition
PartitionedStream.cs:6
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.Linq.Parallel.OrdinalIndexState
OrdinalIndexState
Definition
OrdinalIndexState.cs:4
System.Linq.Parallel.OrdinalIndexState.Shuffled
@ Shuffled
System.Linq.Parallel
Definition
AnyAllSearchOperator.cs:5
System.ExceptionArgument.key
@ key
source
System.Linq.Parallel
System.Linq.Parallel
HashRepartitionStream.cs
Generated by
1.10.0