timecache

package
v1.999.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewPeerTimeCache

func NewPeerTimeCache(timeCache storage.TimeCacher) (*peerTimeCache, error)

NewPeerTimeCache creates a new peer time cache data structure instance

func NewTimeCacher

func NewTimeCacher(arg ArgTimeCacher) (*timeCacher, error)

NewTimeCacher creates a new timeCacher

Types

type ArgTimeCacher

type ArgTimeCacher struct {
	DefaultSpan time.Duration
	CacheExpiry time.Duration
}

ArgTimeCacher is the argument used to create a new timeCacher instance

type TimeCache

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

TimeCache can retain an amount of string keys for a defined period of time sweeping (clean-up) is triggered each time a new item is added or a key is present in the time cache This data structure is concurrent safe.

func NewTimeCache

func NewTimeCache(defaultSpan time.Duration) *TimeCache

NewTimeCache creates a new time cache data structure instance

func (*TimeCache) Add

func (tc *TimeCache) Add(key string) error

Add will store the key in the time cache Double adding the key is permitted. It will replace the data, if existing. It does not trigger sweep.

func (*TimeCache) AddWithSpan

func (tc *TimeCache) AddWithSpan(key string, duration time.Duration) error

AddWithSpan will store the key in the time cache with the provided span duration Double adding the key is permitted. It will replace the data, if existing. It does not trigger sweep.

func (*TimeCache) Has

func (tc *TimeCache) Has(key string) bool

Has returns if the key is still found in the time cache

func (*TimeCache) IsInterfaceNil

func (tc *TimeCache) IsInterfaceNil() bool

IsInterfaceNil returns true if there is no value under the interface

func (*TimeCache) Len

func (tc *TimeCache) Len() int

Len returns the number of elements which are still stored in the time cache

func (*TimeCache) Sweep

func (tc *TimeCache) Sweep()

Sweep starts from the oldest element and will search each element if it is still valid to be kept. Sweep ends when it finds an element that is still valid

func (*TimeCache) Upsert

func (tc *TimeCache) Upsert(key string, duration time.Duration) error

Upsert will add the key and provided duration if not exists If the record exists, will update the duration if the provided duration is larger than existing Also, it will reset the contained timestamp to time.Now

Jump to

Keyboard shortcuts

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