diff --git a/tracker/stats/stats.go b/stats/stats.go similarity index 90% rename from tracker/stats/stats.go rename to stats/stats.go index 84d2ad1..7ccfdf5 100644 --- a/tracker/stats/stats.go +++ b/stats/stats.go @@ -39,6 +39,14 @@ const ( ErroredRequest ) +// DefaultStats is a default instance of stats tracking that uses an unbuffered +// channel for broadcasting events. +var DefaultStats *Stats + +func init() { + DefaultStats = New(0) +} + type PeerStats struct { // Stats for all peers. Completed uint64 @@ -161,3 +169,8 @@ func (s *Stats) handleEvents() { } } } + +// RecordEvent broadcasts an event to the default stats tracking. +func RecordEvent(event int) { + DefaultStats.RecordEvent(event) +}