61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
/*
|
|
Copyright (C) 2013 Aaron Lindsay <aaron@aclindsay.com>
|
|
*/
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"sync/atomic"
|
|
)
|
|
|
|
var localUpdates int32 = 0
|
|
var remoteUpdates int32 = 0
|
|
var fileUploads int32 = 0
|
|
var fileDownloads int32 = 0
|
|
var sendingUpdates int32 = 0
|
|
|
|
func GetStats() string {
|
|
local := atomic.LoadInt32(&localUpdates)
|
|
remote := atomic.LoadInt32(&remoteUpdates)
|
|
uploads := atomic.LoadInt32(&fileUploads)
|
|
downloads := atomic.LoadInt32(&fileDownloads)
|
|
|
|
return fmt.Sprintf(`Asink client statistics:
|
|
Processing %d file updates (%d local, %d remote)
|
|
Uploading %d files
|
|
Downloading %d files
|
|
Sending %d updates`, local+remote, local, remote, uploads, downloads, sendingUpdates)
|
|
}
|
|
|
|
func StatStartLocalUpdate() {
|
|
atomic.AddInt32(&localUpdates, 1)
|
|
}
|
|
func StatStopLocalUpdate() {
|
|
atomic.AddInt32(&localUpdates, -1)
|
|
}
|
|
func StatStartRemoteUpdate() {
|
|
atomic.AddInt32(&remoteUpdates, 1)
|
|
}
|
|
func StatStopRemoteUpdate() {
|
|
atomic.AddInt32(&remoteUpdates, -1)
|
|
}
|
|
func StatStartUpload() {
|
|
atomic.AddInt32(&fileUploads, 1)
|
|
}
|
|
func StatStopUpload() {
|
|
atomic.AddInt32(&fileUploads, -1)
|
|
}
|
|
func StatStartDownload() {
|
|
atomic.AddInt32(&fileDownloads, 1)
|
|
}
|
|
func StatStopDownload() {
|
|
atomic.AddInt32(&fileDownloads, -1)
|
|
}
|
|
func StatStartSending() {
|
|
atomic.AddInt32(&sendingUpdates, 1)
|
|
}
|
|
func StatStopSending() {
|
|
atomic.AddInt32(&sendingUpdates, -1)
|
|
}
|