Exemplo n.º 1
0
func Poller(lock *sync.Mutex, ss *spacesaving.Rate, pc *pcap.Pcap) {
	w := bufio.NewWriter(os.Stdout)

	for _ = range time.Tick(3 * time.Second) {
		stat, _ := pc.Getstats()

		lock.Lock()
		fmt.Fprintf(w, "\033c")
		elements := ss.GetAll(time.Now())
		for i, e := range elements {
			fmt.Fprintf(w, "%60s\t%f\t%f\n", e.Key, e.LoRate, e.HiRate)
			if i > 40 {
				break
			}
		}
		fmt.Fprintf(w, "\n")
		fmt.Fprintf(w, "received:%v  dropped:%v/%v (software/interface)\n",
			stat.PacketsReceived, stat.PacketsDropped, stat.PacketsIfDropped)
		w.Flush()
		lock.Unlock()
	}
}