state.go
830 Bytes
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
package mvc
import (
metrics "github.com/rcrowley/go-metrics"
"ngrok/proto"
)
type UpdateStatus int
const (
UpdateNone = -1 * iota
UpdateInstalling
UpdateReady
UpdateAvailable
)
type ConnStatus int
const (
ConnConnecting = iota
ConnReconnecting
ConnOnline
)
type Tunnel struct {
PublicUrl string
Protocol proto.Protocol
LocalAddr string
}
type ConnectionContext struct {
Tunnel Tunnel
ClientAddr string
}
type State interface {
GetClientVersion() string
GetServerVersion() string
GetTunnels() []Tunnel
GetProtocols() []proto.Protocol
GetUpdateStatus() UpdateStatus
GetConnStatus() ConnStatus
GetConnectionMetrics() (metrics.Meter, metrics.Timer)
GetBytesInMetrics() (metrics.Counter, metrics.Histogram)
GetBytesOutMetrics() (metrics.Counter, metrics.Histogram)
SetUpdateStatus(UpdateStatus)
}