aboutsummaryrefslogtreecommitdiff
path: root/internal/caching/caches.go
blob: 722405de6616ebd06b09d12118227d4bcc42204e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package caching

import "time"

// Caches contains a set of references to caches. They may be
// different implementations as long as they satisfy the Cache
// interface.
type Caches struct {
	RoomVersions       Cache // RoomVersionCache
	ServerKeys         Cache // ServerKeyCache
	RoomServerRoomNIDs Cache // RoomServerNIDsCache
	RoomServerRoomIDs  Cache // RoomServerNIDsCache
	RoomInfos          Cache // RoomInfoCache
	FederationEvents   Cache // FederationEventsCache
	SpaceSummaryRooms  Cache // SpaceSummaryRoomsCache
}

// Cache is the interface that an implementation must satisfy.
type Cache interface {
	Get(key string) (value interface{}, ok bool)
	Set(key string, value interface{})
	Unset(key string)
}

const CacheNoMaxAge = time.Duration(0)