-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinitializer.go
More file actions
56 lines (49 loc) · 1.7 KB
/
Copy pathinitializer.go
File metadata and controls
56 lines (49 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package http3
import "gnalloy.org/gnalloy/channel"
// PipelineInitializer 是 bootstrap Channel 初始化回调的函数签名别名。
type PipelineInitializer = func(ch channel.Channel) error
// RequestStreamInitializer 创建 HTTP/3 bidirectional request stream 初始化器。
func RequestStreamInitializer(cfg PipelineConfig) PipelineInitializer {
return func(ch channel.Channel) error {
if ch == nil {
return ErrInvalidPipeline
}
return ApplyRequestStreamPipeline(ch.Pipeline(), cfg)
}
}
// RemoteControlStreamInitializer 创建 HTTP/3 对端 control stream 初始化器。
func RemoteControlStreamInitializer(cfg PipelineConfig) PipelineInitializer {
return func(ch channel.Channel) error {
if ch == nil {
return ErrInvalidPipeline
}
return ApplyRemoteControlStreamPipeline(ch.Pipeline(), cfg)
}
}
// LocalControlStreamInitializer 创建 HTTP/3 本端 control stream 初始化器。
func LocalControlStreamInitializer(cfg PipelineConfig) PipelineInitializer {
return func(ch channel.Channel) error {
if ch == nil {
return ErrInvalidPipeline
}
return ApplyLocalControlStreamPipeline(ch.Pipeline(), cfg)
}
}
// QPACKEncoderStreamInitializer 创建本端 QPACK encoder stream 初始化器。
func QPACKEncoderStreamInitializer() PipelineInitializer {
return func(ch channel.Channel) error {
if ch == nil {
return ErrInvalidPipeline
}
return ApplyQPACKEncoderStreamPipeline(ch.Pipeline())
}
}
// QPACKDecoderStreamInitializer 创建本端 QPACK decoder stream 初始化器。
func QPACKDecoderStreamInitializer() PipelineInitializer {
return func(ch channel.Channel) error {
if ch == nil {
return ErrInvalidPipeline
}
return ApplyQPACKDecoderStreamPipeline(ch.Pipeline())
}
}