This section is empty.


This section is empty.


This section is empty.


type DelayHeap

type DelayHeap struct {

	// contains filtered or unexported fields


DelayHeap wraps a heap and gives operations other than Push/Pop. The inner heap is sorted by the time in the WaitUntil field of delayHeapNode

func NewDelayHeap

func NewDelayHeap() *DelayHeap

func (*DelayHeap) Contains

func (p *DelayHeap) Contains(heapNode HeapNode) bool

func (*DelayHeap) Length

func (p *DelayHeap) Length() int

func (*DelayHeap) Peek

func (p *DelayHeap) Peek() *delayHeapNode

func (*DelayHeap) Pop

func (p *DelayHeap) Pop() *delayHeapNode

func (*DelayHeap) Push

func (p *DelayHeap) Push(dataNode HeapNode, next time.Time) error

func (*DelayHeap) Remove

func (p *DelayHeap) Remove(heapNode HeapNode) error

func (*DelayHeap) Update

func (p *DelayHeap) Update(heapNode HeapNode, waitUntil time.Time) error

type HeapNode

type HeapNode interface {
	Data() interface{} // The data object
	ID() string        // ID of the object, used in conjunction with namespace for deduplication
	Namespace() string // Namespace of the object, can be empty

HeapNode is an interface type implemented by objects stored in the DelayHeap

Source Files