monitor a good

Former-commit-id: 5a37bfdfe208d3d1a71e6b4924209d0c8e6f53a0
This commit is contained in:
bel
2019-06-21 21:59:56 -06:00
parent 90a31495c9
commit 730cf1e15a
32 changed files with 542 additions and 2983 deletions

43
monitor/queue.go Normal file
View File

@@ -0,0 +1,43 @@
package monitor
import "github.com/golang-collections/go-datastructures/queue"
type Queue struct {
queue *queue.PriorityQueue
}
func newQueue() *Queue {
return &Queue{
queue: queue.NewPriorityQueue(1),
}
}
func (q *Queue) Push(i *Item) {
q.queue.Put(i)
}
func (q *Queue) Pop() *Item {
is, err := q.queue.Get(1)
if err != nil {
return nil
}
if len(is) < 1 {
return nil
}
if is[0] == nil {
return nil
}
return is[0].(*Item)
}
func (q *Queue) Peek() *Item {
i := q.queue.Peek()
if i == nil {
return nil
}
return i.(*Item)
}
func (q *Queue) Len() int {
return q.queue.Len()
}