aboutsummaryrefslogtreecommitdiff
path: root/internal/caching/cache_eventstatekeys.go
blob: 51e2499d5a28b193566b67e0c6d03a1cc0a37ef0 (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
26
27
28
29
30
31
32
33
34
35
36
37
38
package caching

import "github.com/matrix-org/dendrite/roomserver/types"

// EventStateKeyCache contains the subset of functions needed for
// a room event state key cache.
type EventStateKeyCache interface {
	GetEventStateKey(eventStateKeyNID types.EventStateKeyNID) (string, bool)
	StoreEventStateKey(eventStateKeyNID types.EventStateKeyNID, eventStateKey string)
	GetEventStateKeyNID(eventStateKey string) (types.EventStateKeyNID, bool)
}

func (c Caches) GetEventStateKey(eventStateKeyNID types.EventStateKeyNID) (string, bool) {
	return c.RoomServerStateKeys.Get(eventStateKeyNID)
}

func (c Caches) StoreEventStateKey(eventStateKeyNID types.EventStateKeyNID, eventStateKey string) {
	c.RoomServerStateKeys.Set(eventStateKeyNID, eventStateKey)
	c.RoomServerStateKeyNIDs.Set(eventStateKey, eventStateKeyNID)
}

func (c Caches) GetEventStateKeyNID(eventStateKey string) (types.EventStateKeyNID, bool) {
	return c.RoomServerStateKeyNIDs.Get(eventStateKey)
}

type EventTypeCache interface {
	GetEventTypeKey(eventType string) (types.EventTypeNID, bool)
	StoreEventTypeKey(eventTypeNID types.EventTypeNID, eventType string)
}

func (c Caches) StoreEventTypeKey(eventTypeNID types.EventTypeNID, eventType string) {
	c.RoomServerEventTypeNIDs.Set(eventType, eventTypeNID)
	c.RoomServerEventTypes.Set(eventTypeNID, eventType)
}

func (c Caches) GetEventTypeKey(eventType string) (types.EventTypeNID, bool) {
	return c.RoomServerEventTypeNIDs.Get(eventType)
}