aboutsummaryrefslogtreecommitdiff
path: root/internal/caching/cache_federationevents.go
blob: fc1f5496e8047af68683eee802af63e0c88e9352 (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
39
40
41
42
package caching

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

// FederationCache contains the subset of functions needed for
// a federation event cache.
type FederationCache interface {
	GetFederationQueuedPDU(eventNID int64) (event *types.HeaderedEvent, ok bool)
	StoreFederationQueuedPDU(eventNID int64, event *types.HeaderedEvent)
	EvictFederationQueuedPDU(eventNID int64)

	GetFederationQueuedEDU(eventNID int64) (event *gomatrixserverlib.EDU, ok bool)
	StoreFederationQueuedEDU(eventNID int64, event *gomatrixserverlib.EDU)
	EvictFederationQueuedEDU(eventNID int64)
}

func (c Caches) GetFederationQueuedPDU(eventNID int64) (*types.HeaderedEvent, bool) {
	return c.FederationPDUs.Get(eventNID)
}

func (c Caches) StoreFederationQueuedPDU(eventNID int64, event *types.HeaderedEvent) {
	c.FederationPDUs.Set(eventNID, event)
}

func (c Caches) EvictFederationQueuedPDU(eventNID int64) {
	c.FederationPDUs.Unset(eventNID)
}

func (c Caches) GetFederationQueuedEDU(eventNID int64) (*gomatrixserverlib.EDU, bool) {
	return c.FederationEDUs.Get(eventNID)
}

func (c Caches) StoreFederationQueuedEDU(eventNID int64, event *gomatrixserverlib.EDU) {
	c.FederationEDUs.Set(eventNID, event)
}

func (c Caches) EvictFederationQueuedEDU(eventNID int64) {
	c.FederationEDUs.Unset(eventNID)
}