]> Sergey Matveev's repositories - btrtrc.git/blobdiff - peer.go
cmd/btrtrc client
[btrtrc.git] / peer.go
diff --git a/peer.go b/peer.go
index 733aa018ef29727d10df21a44e5f3aa54e033cfb..cf79b79969a0582e215f120f7228e4805b2f1f7f 100644 (file)
--- a/peer.go
+++ b/peer.go
@@ -237,6 +237,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 {
@@ -252,6 +256,16 @@ func (p *Peer) DownloadRate() float64 {
        return p.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
@@ -534,6 +548,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 }))
 }