@@ -7,45 +7,26 @@ package kotlinx.coroutines.channels
7
7
import kotlinx.coroutines.*
8
8
import kotlinx.coroutines.selects.*
9
9
10
- enum class TestChannelKind {
11
- RENDEZVOUS {
12
- override fun create (): Channel <Int > = Channel (Channel .RENDEZVOUS )
13
- override fun toString (): String = " RendezvousChannel"
14
- },
15
- ARRAY_1 {
16
- override fun create (): Channel <Int > = Channel (1 )
17
- override fun toString (): String = " ArrayChannel(1)"
18
- },
19
- ARRAY_10 {
20
- override fun create (): Channel <Int > = Channel (10 )
21
- override fun toString (): String = " ArrayChannel(10)"
22
- },
23
- LINKED_LIST {
24
- override fun create (): Channel <Int > = Channel (Channel .UNLIMITED )
25
- override fun toString (): String = " LinkedListChannel"
26
- },
27
- CONFLATED {
28
- override fun create (): Channel <Int > = Channel (Channel .CONFLATED )
29
- override fun toString (): String = " ConflatedChannel"
30
- override val isConflated: Boolean get() = true
31
- },
32
- ARRAY_BROADCAST_1 {
33
- override fun create (): Channel <Int > = ChannelViaBroadcast (BroadcastChannel (1 ))
34
- override fun toString (): String = " ArrayBroadcastChannel(1)"
35
- },
36
- ARRAY_BROADCAST_10 {
37
- override fun create (): Channel <Int > = ChannelViaBroadcast (BroadcastChannel (10 ))
38
- override fun toString (): String = " ArrayBroadcastChannel(10)"
39
- },
40
- CONFLATED_BROADCAST {
41
- override fun create (): Channel <Int > = ChannelViaBroadcast (ConflatedBroadcastChannel <Int >())
42
- override fun toString (): String = " ConflatedBroadcastChannel"
43
- override val isConflated: Boolean get() = true
44
- }
10
+ enum class TestChannelKind (val capacity : Int ,
11
+ private val description : String ,
12
+ private val viaBroadcast : Boolean = false
13
+ ) {
14
+ RENDEZVOUS (0 , " RendezvousChannel" ),
15
+ ARRAY_1 (1 , " ArrayChannel(1)" ),
16
+ ARRAY_2 (2 , " ArrayChannel(2)" ),
17
+ ARRAY_10 (10 , " ArrayChannel(10)" ),
18
+ LINKED_LIST (Channel .UNLIMITED , " LinkedListChannel" ),
19
+ CONFLATED (Channel .CONFLATED , " ConflatedChannel" ),
20
+ ARRAY_1_BROADCAST (1 , " ArrayBroadcastChannel(1)" , viaBroadcast = true ),
21
+ ARRAY_10_BROADCAST (10 , " ArrayBroadcastChannel(10)" , viaBroadcast = true ),
22
+ CONFLATED_BROADCAST (Channel .CONFLATED , " ConflatedBroadcastChannel" , viaBroadcast = true )
45
23
;
46
24
47
- abstract fun create (): Channel <Int >
48
- open val isConflated: Boolean get() = false
25
+ fun create (): Channel <Int > = if (viaBroadcast) ChannelViaBroadcast (BroadcastChannel (capacity))
26
+ else Channel (capacity)
27
+
28
+ val isConflated get() = capacity == Channel .CONFLATED
29
+ override fun toString (): String = description
49
30
}
50
31
51
32
private class ChannelViaBroadcast <E >(
0 commit comments