monitor a good
Former-commit-id: 5a37bfdfe208d3d1a71e6b4924209d0c8e6f53a0
This commit is contained in:
43
monitor/queue.go
Normal file
43
monitor/queue.go
Normal 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()
|
||||
}
|
||||
Reference in New Issue
Block a user