/
config.go
52 lines (42 loc) · 1.43 KB
/
config.go
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
package webtransport
import (
"time"
"github.com/aptpod/iscp-go/transport/compress"
webtransgo "github.com/quic-go/webtransport-go"
)
/*
Config は、トランスポートに関する設定です。
*/
type Config struct {
// Connection は、QUICのコネクションです。
// このフィールドを nil にすることはできません。
Connection *webtransgo.Session
// QueueSize は、トランスポートとメッセージをやり取りする際のメッセージキューの長さです。
// 0 に設定された場合は、 DefaultQueueSize の値が使用されます。
QueueSize int
// CompressConfig は、圧縮に関する設定です。
CompressConfig compress.Config
// ReadBufferExpiry は DATAGRAMメッセージのバッファ有効期限です。
// 0 に設定された場合は、DefaultReadBufferExpiryが使用されます。
ReadBufferExpiry time.Duration
// NegotiationParams は、このトランスポートで事前ネゴシエーションされたパラメーターです。
NegotiationParams NegotiationParams
}
/*
Config のデフォルト値は以下のように定義されています。
*/
const (
DefaultQueueSize = 32
)
func (c Config) connectionOrPanic() *webtransgo.Session {
if c.Connection == nil {
panic("Connection should not be nil")
}
return c.Connection
}
func (c Config) queueSizeOrDefault() int {
if c.QueueSize == 0 {
return DefaultQueueSize
}
return c.QueueSize
}