diff --git a/bandwidth.go b/bandwidth.go index 2dac500..745e6bf 100644 --- a/bandwidth.go +++ b/bandwidth.go @@ -43,7 +43,7 @@ type BPS struct { // New Returns a populated and ready to launch BPS. dts is // a slice of multiples of dt on which to report (e.g. 1x, 10x, 60x dt). dt is -// also how often the values used to send to Rx and Tx are updated. +// also how often the values used to send out in Cur are updated. func New(dts []int, dt time.Duration) (*BPS, error) { if len(dts) < 1 { return nil, errors.New("must specify at least one interval lenght") @@ -116,12 +116,14 @@ func (b *BPS) averages(state []int64) []float64 { return r } +// Write implements io.Writer so that one can simply write bytes to the struct. func (b *BPS) Write(p []byte) (int, error) { n, err := ioutil.Discard.Write(p) b.Add(int64(n)) return n, err } +// Add adds i to the current time bucket. func (b *BPS) Add(i int64) { b.Lock() b.curBs += i @@ -130,6 +132,7 @@ func (b *BPS) Add(i int64) { b.Unlock() } +// Cur returns a slice containing the currenly tracked rates. func (b *BPS) Cur() []float64 { r := make([]float64, len(b.dts)) b.Lock() @@ -140,6 +143,7 @@ func (b *BPS) Cur() []float64 { return r } +// Close cleans up and shuts down a BPS. func (b *BPS) Close() { close(b.quit) <-b.closed