10 StatCurrentlyConnected = iota
11 StatDownloadsInProgress
20 type Counter interface {
21 Increment(keys ...int)
25 Values() map[string]interface{}
35 func NewStats() *Stats {
39 StatCurrentlyConnected: 0,
40 StatDownloadsInProgress: 0,
41 StatUploadsInProgress: 0,
42 StatWaitingDownloads: 0,
43 StatConnectionPeak: 0,
44 StatDownloadCounter: 0,
46 StatConnectionCounter: 0,
51 func (s *Stats) Increment(keys ...int) {
55 for _, key := range keys {
60 func (s *Stats) Decrement(key int) {
67 func (s *Stats) Set(key, val int) {
74 func (s *Stats) Get(key int) int {
81 func (s *Stats) Values() map[string]interface{} {
85 return map[string]interface{}{
86 "CurrentlyConnected": s.stats[StatCurrentlyConnected],
87 "DownloadsInProgress": s.stats[StatDownloadsInProgress],
88 "UploadsInProgress": s.stats[StatUploadsInProgress],
89 "WaitingDownloads": s.stats[StatWaitingDownloads],
90 "ConnectionPeak": s.stats[StatConnectionPeak],
91 "ConnectionCounter": s.stats[StatConnectionCounter],
92 "DownloadCounter": s.stats[StatDownloadCounter],
93 "UploadCounter": s.stats[StatUploadCounter],