github.com/piotrnar/gocoin@v0.0.0-20240512203912-faa0448c5e96/lib/others/qdb/stats.go (about)

     1  package qdb
     2  
     3  import (
     4  	"fmt"
     5  	"sort"
     6  )
     7  
     8  func (db *DB) cnt(k string) {
     9  	db.cntadd(k, 1)
    10  }
    11  
    12  func (db *DB) cntadd(k string, val uint64) {
    13  	db.counter_mutex.Lock()
    14  	db.counter[k] += val
    15  	db.counter_mutex.Unlock()
    16  }
    17  
    18  func (db *DB) GetStats() (s string) {
    19  	db.counter_mutex.Lock()
    20  	ck := make([]string, len(db.counter))
    21  	idx := 0
    22  	for k, _ := range db.counter {
    23  		ck[idx] = k
    24  		idx++
    25  	}
    26  	sort.Strings(ck)
    27  
    28  	for i := range ck {
    29  		k := ck[i]
    30  		v := db.counter[k]
    31  		if s != "" {
    32  			s += ", "
    33  		}
    34  		s += fmt.Sprint(k, "=", v)
    35  	}
    36  	db.counter_mutex.Unlock()
    37  	return s
    38  }