queues

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2020 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

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

Constants

Variables

This section is empty.

Functions

func UnitestOrderedQueue

func UnitestOrderedQueue() error

UnitestOrderedQueue test

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) 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) Pop

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

Pop first item

func (*FIFOQueue) Push

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

Push item

func (*FIFOQueue) Queue

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

Queue get all queue data

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)
	// 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
	//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
}

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) 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) Pop

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

Pop first item

func (*OrderedQueue) Push

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

Push element depending on ordered queue ordering mode

func (*OrderedQueue) Queue

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

Queue get all queue data

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