-
Notifications
You must be signed in to change notification settings - Fork 82
/
options.go
114 lines (92 loc) · 1.94 KB
/
options.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
package sse
import (
"crypto/tls"
"net"
"time"
"github.com/go-kratos/kratos/v2/encoding"
)
const DefaultBufferSize = 1024
type ServerOption func(o *Server)
func WithNetwork(network string) ServerOption {
return func(s *Server) {
s.network = network
}
}
func WithAddress(addr string) ServerOption {
return func(s *Server) {
s.address = addr
}
}
func WithPath(path string) ServerOption {
return func(s *Server) {
s.path = path
}
}
func WithTimeout(timeout time.Duration) ServerOption {
return func(s *Server) {
s.timeout = timeout
}
}
func WithTLSConfig(c *tls.Config) ServerOption {
return func(o *Server) {
o.tlsConf = c
}
}
func WithListener(lis net.Listener) ServerOption {
return func(s *Server) {
s.lis = lis
}
}
func WithBufferSize(size int) ServerOption {
return func(s *Server) {
s.bufferSize = size
}
}
func WithCodec(c string) ServerOption {
return func(s *Server) {
s.codec = encoding.GetCodec(c)
}
}
func WithEncodeBase64(enable bool) ServerOption {
return func(s *Server) {
s.encodeBase64 = enable
}
}
func WithAutoStream(enable bool) ServerOption {
return func(s *Server) {
s.autoStream = enable
}
}
func WithAutoReply(enable bool) ServerOption {
return func(s *Server) {
s.autoReplay = enable
}
}
func WithSplitData(enable bool) ServerOption {
return func(s *Server) {
s.splitData = enable
}
}
func WithHeaders(headers map[string]string) ServerOption {
return func(s *Server) {
s.headers = headers
}
}
func WithSubscriberFunction(sub SubscriberFunction, unsub SubscriberFunction) ServerOption {
return func(s *Server) {
s.subscribeFunc = sub
s.unsubscribeFunc = unsub
}
}
func WithEventTTL(timeout time.Duration) ServerOption {
return func(s *Server) {
s.eventTTL = timeout
}
}
////////////////////////////////////////////////////////////////////////////////
type ClientOption func(o *Client)
func WithEndpoint(uri string) ClientOption {
return func(c *Client) {
c.url = uri
}
}