mirror of
https://github.com/bcicen/ctop.git
synced 2024-08-30 18:23:19 +00:00
52 lines
1.0 KiB
Go
52 lines
1.0 KiB
Go
package single
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"github.com/bcicen/ctop/cwidgets"
|
|
ui "github.com/gizak/termui"
|
|
)
|
|
|
|
type IO struct {
|
|
*ui.Sparklines
|
|
readHist *DiffHist
|
|
writeHist *DiffHist
|
|
}
|
|
|
|
func NewIO() *IO {
|
|
io := &IO{ui.NewSparklines(), NewDiffHist(60), NewDiffHist(60)}
|
|
io.BorderLabel = "IO"
|
|
io.Height = 6
|
|
io.Width = colWidth[0]
|
|
io.X = 0
|
|
io.Y = 24
|
|
|
|
read := ui.NewSparkline()
|
|
read.Title = "READ"
|
|
read.Height = 1
|
|
read.Data = io.readHist.Data
|
|
read.LineColor = ui.ColorGreen
|
|
|
|
write := ui.NewSparkline()
|
|
write.Title = "WRITE"
|
|
write.Height = 1
|
|
write.Data = io.writeHist.Data
|
|
write.LineColor = ui.ColorYellow
|
|
|
|
io.Lines = []ui.Sparkline{read, write}
|
|
return io
|
|
}
|
|
|
|
func (w *IO) Update(read int64, write int64) {
|
|
var rate string
|
|
|
|
w.readHist.Append(int(read))
|
|
rate = strings.ToLower(cwidgets.ByteFormatInt(w.readHist.Val))
|
|
w.Lines[0].Title = fmt.Sprintf("read [%s/s]", rate)
|
|
|
|
w.writeHist.Append(int(write))
|
|
rate = strings.ToLower(cwidgets.ByteFormatInt(w.writeHist.Val))
|
|
w.Lines[1].Title = fmt.Sprintf("write [%s/s]", rate)
|
|
}
|