123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package client
- import (
- metrics "github.com/rcrowley/go-metrics"
- "ngrok/client/ui"
- )
- // client state
- type State struct {
- id string
- ui *ui.Ui
- publicUrl string
- history *RequestHistory
- opts *Options
- metrics *ClientMetrics
- // just for UI purposes
- status string
- historyEntries []*RequestHistoryEntry
- stopping bool
- }
- // implement client.ui.State
- func (s State) GetVersion() string { return "" }
- func (s State) GetPublicUrl() string { return s.publicUrl }
- func (s State) GetLocalAddr() string { return s.opts.localaddr }
- func (s State) GetStatus() string { return s.status }
- func (s State) GetHistory() []ui.HttpRequest {
- // go sucks
- historyEntries := make([]ui.HttpRequest, len(s.historyEntries))
- for i, entry := range s.historyEntries {
- historyEntries[i] = entry
- }
- return historyEntries
- }
- func (s State) IsStopping() bool { return s.stopping }
- func (s State) GetConnectionMetrics() (metrics.Meter, metrics.Timer) {
- return s.metrics.connMeter, s.metrics.connTimer
- }
- func (s State) GetRequestMetrics() (metrics.Meter, metrics.Timer) {
- return s.metrics.reqMeter, s.metrics.reqTimer
- }
- func (s State) GetBytesInMetrics() (metrics.Counter, metrics.Histogram) {
- return s.metrics.bytesInCount, s.metrics.bytesIn
- }
- func (s State) GetBytesOutMetrics() (metrics.Counter, metrics.Histogram) {
- return s.metrics.bytesOutCount, s.metrics.bytesOut
- }
- func (s *State) Update() {
- s.ui.Updates.In() <- *s
- }
|