c8b873abc8
* Initial work on roomserver NID caches * Give caches to roomserver storage * Populate caches * Fix bugs * Fix WASM build * Don't hit cache twice in RoomNIDExcludingStubs * Store reverse room ID-room NID mapping, consult caches when assigning NIDs
21 lines
685 B
Go
21 lines
685 B
Go
package caching
|
|
|
|
// 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
|
|
RoomServerStateKeyNIDs Cache // RoomServerNIDsCache
|
|
RoomServerEventTypeNIDs Cache // RoomServerNIDsCache
|
|
RoomServerRoomNIDs Cache // RoomServerNIDsCache
|
|
RoomServerRoomIDs Cache // RoomServerNIDsCache
|
|
}
|
|
|
|
// 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)
|
|
}
|