common

package
v0.5.0-RC9 Latest Latest
Warning

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

Go to latest
Published: Jan 11, 2024 License: AGPL-3.0, AGPL-3.0-or-later Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func LogComparedBytes

func LogComparedBytes(name1 string, name2 string, data1 []byte, data2 []byte, numBytesBefore int, numBytesAfter int) string

LogComparedBytes returns a string the bytes of two []bytes, starting from the first byte that is different

Types

type Cache

type Cache[K comparable, T any] struct {
	// contains filtered or unexported fields
}

Cache is a generic cache implementation with TOL (time of live) for each item

func NewCache

func NewCache[K comparable, T any](timerProvider TimeProvider, timeOfLiveItems time.Duration) *Cache[K, T]

NewCache creates a new cache

func (*Cache[K, T]) Clear

func (c *Cache[K, T]) Clear()

Clear clears the cache

func (*Cache[K, T]) Delete

func (c *Cache[K, T]) Delete(key K)

Delete deletes the key from the cache

func (*Cache[K, T]) DeleteOutdated

func (c *Cache[K, T]) DeleteOutdated()

DeleteOutdated deletes the outdated items from the cache

func (*Cache[K, T]) Get

func (c *Cache[K, T]) Get(key K) (T, bool)

Get returns the value of the key and true if the key exists and is not outdated

func (*Cache[K, T]) GetOrDefault

func (c *Cache[K, T]) GetOrDefault(key K, defaultValue T) T

GetOrDefault returns the value of the key and defaultValue if the key does not exist or is outdated

func (*Cache[K, T]) Keys

func (c *Cache[K, T]) Keys() []K

Keys returns the keys of the cache

func (*Cache[K, T]) Len

func (c *Cache[K, T]) Len() int

Len returns the number of items in the cache

func (*Cache[K, T]) RenewEntry

func (c *Cache[K, T]) RenewEntry(key K, validTime time.Time)

RenewEntry renews the entry of the key

func (*Cache[K, T]) Set

func (c *Cache[K, T]) Set(key K, value T)

Set sets the value of the key

func (*Cache[K, T]) Values

func (c *Cache[K, T]) Values() []T

Values returns the values of the cache

type CriticalErrorHalt

type CriticalErrorHalt struct {
	EventLog  syncinterfaces.EventLogInterface
	SleepTime time.Duration
}

CriticalErrorHalt is a Synchronizer halter, implements syncinterfaces.Halter basically it logs an error and keep in a infinite loop to halt the synchronizer

func NewCriticalErrorHalt

func NewCriticalErrorHalt(eventLog syncinterfaces.EventLogInterface, sleepTime time.Duration) *CriticalErrorHalt

NewCriticalErrorHalt creates a new HaltSynchronizer

func (*CriticalErrorHalt) CriticalError

func (g *CriticalErrorHalt) CriticalError(ctx context.Context, err error)

CriticalError halts the Synchronizer and write a eventLog on Database

type DefaultTimeProvider

type DefaultTimeProvider struct{}

DefaultTimeProvider is the default implementation of TimeProvider

func (DefaultTimeProvider) Now

func (d DefaultTimeProvider) Now() time.Time

Now returns current time

type MockTimerProvider

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

MockTimerProvider is a mock implementation of the TimerProvider interface that return the internal variable

func (*MockTimerProvider) Now

func (m *MockTimerProvider) Now() time.Time

Now in the implementation of TimeProvider.Now()

type TimeProvider

type TimeProvider interface {
	// Now returns current time
	Now() time.Time
}

TimeProvider is a interface for classes that needs time and we want to be able to unittest it

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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