memory

package
v0.3.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DelayedMemoryQueue

type DelayedMemoryQueue struct {
	// contains filtered or unexported fields
}

func NewDelayedMemoryQueue

func NewDelayedMemoryQueue(minFirst bool) *DelayedMemoryQueue

func (*DelayedMemoryQueue) Delete

func (pq *DelayedMemoryQueue) Delete(group string, id uint64) *Item

func (*DelayedMemoryQueue) Dequeue

func (pq *DelayedMemoryQueue) Dequeue() *Item

func (*DelayedMemoryQueue) Enqueue

func (pq *DelayedMemoryQueue) Enqueue(group string, item *Item)

func (*DelayedMemoryQueue) Get

func (pq *DelayedMemoryQueue) Get(group string, id uint64) *Item

func (*DelayedMemoryQueue) Len

func (pq *DelayedMemoryQueue) Len() uint64

func (*DelayedMemoryQueue) UpdatePriority

func (pq *DelayedMemoryQueue) UpdatePriority(group string, id uint64, priority int64)

type FairMemoryQueue

type FairMemoryQueue struct {
	// contains filtered or unexported fields
}

FairMemoryQueue is a fair queue that balances between different groups

func NewFairMemoryQueue

func NewFairMemoryQueue() *FairMemoryQueue

FairQueue creates a new FairQueue

func (*FairMemoryQueue) Delete

func (fq *FairMemoryQueue) Delete(group string, id uint64) *Item

func (*FairMemoryQueue) Dequeue

func (fq *FairMemoryQueue) Dequeue() *Item

Dequeue removes and returns the next message in a fair way

func (*FairMemoryQueue) Enqueue

func (fq *FairMemoryQueue) Enqueue(group string, item *Item)

Enqueue adds a message to the queue

func (*FairMemoryQueue) Get

func (fq *FairMemoryQueue) Get(group string, id uint64) *Item

func (*FairMemoryQueue) Len

func (fq *FairMemoryQueue) Len() uint64

func (*FairMemoryQueue) UpdatePriority

func (fq *FairMemoryQueue) UpdatePriority(group string, id uint64, priority int64)

type Item

type Item struct {
	ID       uint64
	Priority int64
	Group    string
}

func (*Item) UpdatePriority

func (m *Item) UpdatePriority(newPriority int64)

type LinkedList

type LinkedList struct {
	// contains filtered or unexported fields
}

func (*LinkedList) Append

func (l *LinkedList) Append(node *LinkedListNode)

func (*LinkedList) Len

func (l *LinkedList) Len() uint64

func (*LinkedList) Remove

func (l *LinkedList) Remove(node *LinkedListNode)

type LinkedListNode

type LinkedListNode struct {
	// contains filtered or unexported fields
}

func NewLinkedListNode

func NewLinkedListNode(group string, queue *PriorityMemoryQueue) *LinkedListNode

func (*LinkedListNode) Queue

func (n *LinkedListNode) Queue() *PriorityMemoryQueue

type MemoryQueue

type MemoryQueue interface {
	Enqueue(group string, item *Item)
	Dequeue() *Item
	Get(group string, id uint64) *Item
	Delete(group string, id uint64) *Item
	UpdatePriority(group string, id uint64, priority int64)
	Len() uint64
}

type PriorityMemoryQueue

type PriorityMemoryQueue struct {
	// contains filtered or unexported fields
}

func NewPriorityMemoryQueue

func NewPriorityMemoryQueue(minFirst bool) *PriorityMemoryQueue

func (*PriorityMemoryQueue) Delete

func (pq *PriorityMemoryQueue) Delete(id uint64) *Item

func (*PriorityMemoryQueue) Get

func (pq *PriorityMemoryQueue) Get(id uint64) *Item

func (PriorityMemoryQueue) Len

func (pq PriorityMemoryQueue) Len() int

func (PriorityMemoryQueue) Less

func (pq PriorityMemoryQueue) Less(i, j int) bool

func (*PriorityMemoryQueue) Peek

func (pq *PriorityMemoryQueue) Peek() any

func (*PriorityMemoryQueue) Pop

func (pq *PriorityMemoryQueue) Pop() any

func (*PriorityMemoryQueue) Push

func (pq *PriorityMemoryQueue) Push(x any)

func (PriorityMemoryQueue) Swap

func (pq PriorityMemoryQueue) Swap(i, j int)

func (*PriorityMemoryQueue) UpdatePriority

func (pq *PriorityMemoryQueue) UpdatePriority(id uint64, priority int64)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL