Tizen_4.0 base
[platform/upstream/docker-engine.git] / vendor / github.com / docker / swarmkit / manager / scheduler / nodeheap.go
1 package scheduler
2
3 type nodeMaxHeap struct {
4         nodes    []NodeInfo
5         lessFunc func(*NodeInfo, *NodeInfo) bool
6         length   int
7 }
8
9 func (h nodeMaxHeap) Len() int {
10         return h.length
11 }
12
13 func (h nodeMaxHeap) Swap(i, j int) {
14         h.nodes[i], h.nodes[j] = h.nodes[j], h.nodes[i]
15 }
16
17 func (h nodeMaxHeap) Less(i, j int) bool {
18         // reversed to make a max-heap
19         return h.lessFunc(&h.nodes[j], &h.nodes[i])
20 }
21
22 func (h *nodeMaxHeap) Push(x interface{}) {
23         h.nodes = append(h.nodes, x.(NodeInfo))
24         h.length++
25 }
26
27 func (h *nodeMaxHeap) Pop() interface{} {
28         h.length--
29         // return value is never used
30         return nil
31 }