queues

package
v0.0.0-...-7a3883e Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2022 License: GPL-3.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OrderingAsc  = OrderingMode(0)
	OrderingDesc = OrderingMode(1)
)

Constants

Variables

This section is empty.

Functions

func UnixTimestampToTime

func UnixTimestampToTime(secs int64) time.Time

UnixTimestampToTime convert unix timestamp in seconds to time.Time

Types

type FIFOQueue

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

FIFOQueue queue

func NewFIFOQueue

func NewFIFOQueue() *FIFOQueue

NewFIFOQueue new queue ordered by ascending

func (*FIFOQueue) CutAfter

func (q *FIFOQueue) CutAfter(idx int) []IElement

CutAfter cut elements out after index

func (*FIFOQueue) CutBefore

func (q *FIFOQueue) CutBefore(idx int) []IElement

CutBefore cut elements out before index

func (*FIFOQueue) Dump

func (q *FIFOQueue) Dump() string

Dump element in queue

func (*FIFOQueue) Elements

func (q *FIFOQueue) Elements() []IElement

Elements of all queue

func (*FIFOQueue) FindElements

func (q *FIFOQueue) FindElements(cmp *definations.ComparisonObject) []IElement

FindElements by compaire condition

func (*FIFOQueue) First

func (q *FIFOQueue) First() (interface{}, bool)

First item without pop

func (*FIFOQueue) GetElement

func (q *FIFOQueue) GetElement(ID string) (interface{}, bool)

GetElement get element by id

func (*FIFOQueue) GetOne

func (q *FIFOQueue) GetOne(item IElement) (interface{}, bool)

GetOne func

func (*FIFOQueue) GetSize

func (q *FIFOQueue) GetSize() int

GetSize of queue

func (*FIFOQueue) Pop

func (q *FIFOQueue) Pop() (interface{}, bool)

Pop first item

func (*FIFOQueue) PopMany

func (q *FIFOQueue) PopMany(maxResults int) ([]interface{}, int)

PopMany head elements from queue limited by maxResults, the element would be deleted from queue

func (*FIFOQueue) Push

func (q *FIFOQueue) Push(item IElement) bool

Push item

func (*FIFOQueue) Remove

func (q *FIFOQueue) Remove(item IElement) bool

Remove an element from queue identified by element.GetID()

type IElement

type IElement interface {
	GetID() string
	GetName() string
	OrderingValue() int64
	DebugString() string
}

IElement queue element

type IQueue

type IQueue interface {
	// Get an element from queue identified by element.GetID()
	GetOne(IElement) (interface{}, bool)
	// Pop first element from queue, the element would be deleted from queue
	Pop() (interface{}, bool)
	// PopMany head elements from queue limited by maxResults, the element would be deleted from queue
	PopMany(maxResults int) ([]interface{}, int)
	// First element of queue would be returned, the element would not be deleted from queue
	First() (interface{}, bool)
	// Push an element into queue
	Push(IElement) bool
	// Remove an element from queue identified by element.GetID()
	Remove(IElement) bool
	// Elements of all queue
	Elements() []IElement
	// FindElements by compaire condition
	FindElements(*definations.ComparisonObject) []IElement
	//Dump all elements from queue
	Dump() string
	// GetElement
	GetElement(ID string) (interface{}, bool)
	// CutBefore cut elements out before index
	CutBefore(idx int) []IElement
	// CutAfter cut elements out after index
	CutAfter(idx int) []IElement
	// GetSize of queue
	GetSize() int
}

IQueue interface

type OrderedQueue

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

OrderedQueue queue

func NewAscOrderingQueue

func NewAscOrderingQueue() *OrderedQueue

NewAscOrderingQueue new queue ordered by ascending

func NewDescOrderingQueue

func NewDescOrderingQueue() *OrderedQueue

NewDescOrderingQueue new queue ordered by descending

func (*OrderedQueue) Add

func (q *OrderedQueue) Add(item IElement) *OrderedQueue

Add element depending on ordered queue ordering mode

func (*OrderedQueue) CutAfter

func (q *OrderedQueue) CutAfter(idx int) []IElement

CutAfter cut elements out after index

func (*OrderedQueue) CutBefore

func (q *OrderedQueue) CutBefore(idx int) []IElement

CutBefore cut elements out before index

func (*OrderedQueue) Dump

func (q *OrderedQueue) Dump() string

Dump element in queue

func (*OrderedQueue) Elements

func (q *OrderedQueue) Elements() []IElement

Elements of all queue

func (*OrderedQueue) FindElements

func (q *OrderedQueue) FindElements(cmp *definations.ComparisonObject) []IElement

FindElements by compaire condition

func (*OrderedQueue) First

func (q *OrderedQueue) First() (interface{}, bool)

First item without pop

func (*OrderedQueue) GetElement

func (q *OrderedQueue) GetElement(ID string) (interface{}, bool)

GetElement get element by id

func (*OrderedQueue) GetOne

func (q *OrderedQueue) GetOne(item IElement) (interface{}, bool)

GetOne an element from queue identified by element.GetID()

func (*OrderedQueue) GetSize

func (q *OrderedQueue) GetSize() int

GetSize of queue

func (*OrderedQueue) Pop

func (q *OrderedQueue) Pop() (interface{}, bool)

Pop first item

func (*OrderedQueue) PopMany

func (q *OrderedQueue) PopMany(maxResults int) ([]interface{}, int)

PopMany head elements from queue limited by maxResults, the element would be deleted from queue

func (*OrderedQueue) Push

func (q *OrderedQueue) Push(item IElement) bool

Push element depending on ordered queue ordering mode

func (*OrderedQueue) Remove

func (q *OrderedQueue) Remove(item IElement) bool

Remove an element from queue identified by element.GetID()

type OrderingMode

type OrderingMode int

OrderingMode type

Jump to

Keyboard shortcuts

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