]> Sergey Matveev's repositories - btrtrc.git/blobdiff - peer.go
Initial draft client
[btrtrc.git] / peer.go
diff --git a/peer.go b/peer.go
index d5ed19e53ac45471b589327afe0443805194f742..abf45d4b58bd9a89f8c5f6ffeb29de0c2082edd8 100644 (file)
--- a/peer.go
+++ b/peer.go
@@ -239,6 +239,10 @@ func (cn *Peer) statusFlags() (ret string) {
        return
 }
 
+func (cn *Peer) StatusFlags() string {
+       return cn.statusFlags()
+}
+
 func (cn *Peer) downloadRate() float64 {
        num := cn._stats.BytesReadUsefulData.Int64()
        if num == 0 {
@@ -254,6 +258,16 @@ func (cn *Peer) DownloadRate() float64 {
        return cn.downloadRate()
 }
 
+func (cn *Peer) UploadRate() float64 {
+       cn.locker().RLock()
+       defer cn.locker().RUnlock()
+       num := cn._stats.BytesWrittenData.Int64()
+       if num == 0 {
+               return 0
+       }
+       return float64(num) / time.Now().Sub(cn.completedHandshake).Seconds()
+}
+
 func (cn *Peer) iterContiguousPieceRequests(f func(piece pieceIndex, count int)) {
        var last Option[pieceIndex]
        var count int
@@ -532,6 +546,14 @@ func (cn *Peer) allStats(f func(*ConnStats)) {
        }
 }
 
+func (cn *Peer) Stats() *ConnStats {
+       return cn.stats()
+}
+
+func (cn *Peer) CompletedString() string {
+       return cn.completedString()
+}
+
 func (cn *Peer) readBytes(n int64) {
        cn.allStats(add(n, func(cs *ConnStats) *Count { return &cs.BytesRead }))
 }