lru

package
v0.0.11 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2022 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LRU

type LRU interface {
	xmap.IMap

	Purge()
}

type LruQueue

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

func NewLruQueue

func NewLruQueue(cap int) *LruQueue

NewLruQueue new a appoint capacity NewLruQueue

@param cap capacity
@return *LruQueue lruQueue

func (*LruQueue) AddListener

func (q *LruQueue) AddListener(listener QueueListener)

AddListener add queue listener

@receiver q queue
@param listener listener

func (*LruQueue) Delete

func (q *LruQueue) Delete(elem *QueueElem)

Delete delete element in queue

@receiver q queue
@param elem

func (*LruQueue) Insert

func (q *LruQueue) Insert(v interface{}) *QueueElem

Insert insert element into queue

@receiver q queue
@param v value
@return *QueueElem

func (*LruQueue) Move

func (q *LruQueue) Move(other *LruQueue, elem *QueueElem, notify bool) *QueueElem

Move more element to other queue

@receiver q queue
@param other other queue
@param elem element
@param notify
@return *QueueElem

func (*LruQueue) Touch

func (q *LruQueue) Touch(elem *QueueElem)

Touch touch an element

@receiver q queue
@param elem element

type Queue

type Queue interface {
	AddListener(listener QueueListener)

	Touch(elem *QueueElem)

	Move(other *LruQueue, elem *QueueElem, notify bool) *QueueElem

	Insert(v interface{}) *QueueElem

	Delete(elem *QueueElem)
}

type QueueElem

type QueueElem list.Element

func NewLruElement

func NewLruElement(v interface{}) *QueueElem

NewLruElement NewLruElement by value

@param v value
@return *QueueElem

type QueueListener

type QueueListener interface {

	// PostTouch Element hit, which is called after the element is moved to the queue head
	//  @param v any type
	PostTouch(v interface{})

	// PostInsert Called after the element is newly added to the queue header
	//  @param v any type
	PostInsert(v interface{})

	// PostDelete Called after the element is deleted from the queue
	//  @param v any type
	PostDelete(v interface{})
}

QueueListener

@Description: QueueListener

type SimpleLru

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

SimpleLru type SimpleLru

func NewLruCache

func NewLruCache(capacity int) *SimpleLru

NewLruCache new a appoint capacity SimpleLru

@param capacity lru cache capacity
@return *SimpleLru simple lru

func (*SimpleLru) Delete

func (m *SimpleLru) Delete(key interface{})

Delete delete by key

@receiver m lru cache
@param key key

func (*SimpleLru) Get

func (m *SimpleLru) Get(key interface{}) (value interface{}, loaded bool)

Get get key to value

@receiver m SimpleLru
@param key key
@return value value
@return loaded success is true, fail is false

func (*SimpleLru) PostDelete

func (m *SimpleLru) PostDelete(v interface{})

PostDelete delete data

@receiver m lru cache
@param v param

func (*SimpleLru) PostInsert

func (m *SimpleLru) PostInsert(v interface{})

func (*SimpleLru) PostTouch

func (m *SimpleLru) PostTouch(v interface{})

func (*SimpleLru) Purge

func (m *SimpleLru) Purge()

Purge Purge data

@receiver m

func (*SimpleLru) Put

func (m *SimpleLru) Put(key, value interface{})

Put put value to lru

@receiver m lru cache
@param key key
@param value value

func (*SimpleLru) Size

func (m *SimpleLru) Size() int

Size get Lru queue Size

@receiver m lru cache
@return int lru cache size

Jump to

Keyboard shortcuts

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