This section is empty.


This section is empty.


This section is empty.


type Heap

type Heap struct {
	// contains filtered or unexported fields

    Heap is a producer/consumer queue that implements a heap data structure. It can be used to implement priority queues and similar data structures.

    func New

    func New(keyFn KeyFunc, lessFn lessFunc) *Heap

      New returns a Heap which can be used to queue up items to process.

      func NewWithRecorder

      func NewWithRecorder(keyFn KeyFunc, lessFn lessFunc, metricRecorder metrics.MetricRecorder) *Heap

        NewWithRecorder wraps an optional metricRecorder to compose a Heap object.

        func (*Heap) Add

        func (h *Heap) Add(obj interface{}) error

          Add inserts an item, and puts it in the queue. The item is updated if it already exists.

          func (*Heap) AddIfNotPresent

          func (h *Heap) AddIfNotPresent(obj interface{}) error

            AddIfNotPresent inserts an item, and puts it in the queue. If an item with the key is present in the map, no changes is made to the item.

            func (*Heap) Delete

            func (h *Heap) Delete(obj interface{}) error

              Delete removes an item.

              func (*Heap) Get

              func (h *Heap) Get(obj interface{}) (interface{}, bool, error)

                Get returns the requested item, or sets exists=false.

                func (*Heap) GetByKey

                func (h *Heap) GetByKey(key string) (interface{}, bool, error)

                  GetByKey returns the requested item, or sets exists=false.

                  func (*Heap) Len

                  func (h *Heap) Len() int

                    Len returns the number of items in the heap.

                    func (*Heap) List

                    func (h *Heap) List() []interface{}

                      List returns a list of all the items.

                      func (*Heap) Peek

                      func (h *Heap) Peek() interface{}

                        Peek returns the head of the heap without removing it.

                        func (*Heap) Pop

                        func (h *Heap) Pop() (interface{}, error)

                          Pop returns the head of the heap and removes it.

                          func (*Heap) Update

                          func (h *Heap) Update(obj interface{}) error

                            Update is the same as Add in this implementation. When the item does not exist, it is added.

                            type KeyFunc

                            type KeyFunc func(obj interface{}) (string, error)

                              KeyFunc is a function type to get the key from an object.

                              Source Files