Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type PriorityQueue ¶
type PriorityQueue struct {
// contains filtered or unexported fields
}
PriorityQueue is a priority queue of observerpb.GetFlowsResponse. It implements heap.Interface. GetFlowsResponse objects are ordered based on their timestamp value; the older the timestamp, the higher the priority.
This implementation is loosely based on the priority queue example in "container/heap".
func NewPriorityQueue ¶
func NewPriorityQueue(n int) *PriorityQueue
NewPriorityQueue creates a new PriorityQueue with initial capacity n.
func (PriorityQueue) Len ¶
func (pq PriorityQueue) Len() int
Len is the number of objects in the queue.
func (*PriorityQueue) Pop ¶
func (pq *PriorityQueue) Pop() *observerpb.GetFlowsResponse
Pop removes and returns the oldest object in the queue. Pop returns nil when the queue is empty.
func (*PriorityQueue) PopOlderThan ¶
func (pq *PriorityQueue) PopOlderThan(t time.Time) []*observerpb.GetFlowsResponse
PopOlderThan removes and returns objects in the queue that are older than t. Objects in the returned list are sorted chronologically from the oldest to the more recent.
func (*PriorityQueue) Push ¶
func (pq *PriorityQueue) Push(resp *observerpb.GetFlowsResponse)
Push adds object resp to the queue.