-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.go
66 lines (57 loc) · 1.37 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package thriftudp
import (
"github.com/apache/thrift/lib/go/thrift"
"github.com/uber/jaeger-lib/metrics"
)
type serverConfig struct {
address string
metrics metrics.Factory
processor thrift.TProcessor
protosIn thrift.TProtocolFactory
protosOut thrift.TProtocolFactory
concurrent int
maxQueueSize int
maxPacketSize int
}
//ServerOpt option for server
type ServerOpt func(*serverConfig)
//ListenAddress ServerOpt | Required
func ListenAddress(addr string) ServerOpt {
return func(cf *serverConfig) {
cf.address = addr
}
}
//Processor ServerOpt | Required
func Processor(exec thrift.TProcessor, concurrent int) ServerOpt {
return func(cf *serverConfig) {
cf.processor = exec
if concurrent != 0 {
cf.concurrent = concurrent
}
}
}
//MetricsFactory ServerOpt | Optional
func MetricsFactory(factory metrics.Factory) ServerOpt {
return func(cf *serverConfig) {
cf.metrics = factory
}
}
//ProtocolFactory ServerOpt | Optional
func ProtocolFactory(in, out thrift.TProtocolFactory) ServerOpt {
return func(cf *serverConfig) {
cf.protosIn = in
cf.protosOut = out
}
}
//MaxQueueSize ServerOpt | Optional
func MaxQueueSize(sz int) ServerOpt {
return func(cf *serverConfig) {
cf.maxQueueSize = sz
}
}
//MaxPacketSize ServerOpt | Optional
func MaxPacketSize(sz int) ServerOpt {
return func(cf *serverConfig) {
cf.maxPacketSize = sz
}
}