2020-06-05 16:42:01 +01:00
|
|
|
package caching
|
|
|
|
|
2022-05-06 14:33:34 +01:00
|
|
|
import (
|
|
|
|
"time"
|
|
|
|
)
|
2022-03-01 16:59:52 +00:00
|
|
|
|
2020-06-05 16:42:01 +01:00
|
|
|
// Caches contains a set of references to caches. They may be
|
|
|
|
// different implementations as long as they satisfy the Cache
|
|
|
|
// interface.
|
|
|
|
type Caches struct {
|
2022-02-18 10:58:41 +00:00
|
|
|
RoomVersions Cache // RoomVersionCache
|
|
|
|
ServerKeys Cache // ServerKeyCache
|
|
|
|
RoomServerRoomNIDs Cache // RoomServerNIDsCache
|
|
|
|
RoomServerRoomIDs Cache // RoomServerNIDsCache
|
|
|
|
RoomInfos Cache // RoomInfoCache
|
|
|
|
FederationEvents Cache // FederationEventsCache
|
2022-03-01 16:32:48 +00:00
|
|
|
SpaceSummaryRooms Cache // SpaceSummaryRoomsCache
|
2022-05-06 14:33:34 +01:00
|
|
|
LazyLoading Cache // LazyLoadCache
|
2020-06-05 16:42:01 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
// Cache is the interface that an implementation must satisfy.
|
|
|
|
type Cache interface {
|
|
|
|
Get(key string) (value interface{}, ok bool)
|
|
|
|
Set(key string, value interface{})
|
2020-06-12 11:07:26 +01:00
|
|
|
Unset(key string)
|
2020-06-05 16:42:01 +01:00
|
|
|
}
|
2022-03-01 16:59:52 +00:00
|
|
|
|
|
|
|
const CacheNoMaxAge = time.Duration(0)
|