41 lines
1.3 KiB
Go
41 lines
1.3 KiB
Go
package common
|
|
|
|
import "errors"
|
|
|
|
// Go away, linter. We need to differentiate constants from variables somehow ;)
|
|
// nolint
|
|
const CACHE_STATIC int = 0
|
|
const CACHE_DYNAMIC int = 1
|
|
const CACHE_SQL int = 2
|
|
|
|
// nolint
|
|
// ErrCacheDesync is thrown whenever a piece of data, for instance, a user is out of sync with the database. Currently unused.
|
|
var ErrCacheDesync = errors.New("The cache is out of sync with the database.") // TODO: A cross-server synchronisation mechanism
|
|
|
|
// ErrStoreCapacityOverflow is thrown whenever a datastore reaches it's maximum hard capacity. I'm not sure if this error is actually used. It might be, we should check
|
|
var ErrStoreCapacityOverflow = errors.New("This datastore has reached it's maximum capacity.") // nolint
|
|
|
|
// nolint
|
|
type DataStore interface {
|
|
DirtyGet(id int) interface{}
|
|
Get(id int) (interface{}, error)
|
|
BypassGet(id int) (interface{}, error)
|
|
//GlobalCount()
|
|
}
|
|
|
|
// nolint
|
|
type DataCache interface {
|
|
CacheGet(id int) (interface{}, error)
|
|
CacheGetUnsafe(id int) (interface{}, error)
|
|
CacheSet(item interface{}) error
|
|
CacheAdd(item interface{}) error
|
|
CacheAddUnsafe(item interface{}) error
|
|
CacheRemove(id int) error
|
|
CacheRemoveUnsafe(id int) error
|
|
Reload(id int) error
|
|
Flush()
|
|
Length() int
|
|
SetCapacity(capacity int)
|
|
GetCapacity() int
|
|
}
|