aboutsummaryrefslogtreecommitdiff
path: root/roomserver/internal/api.go
blob: 37a8a39bfa0afa0a535d20175a96ebcdef33d780 (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
package internal

import (
	"sync"

	"github.com/Shopify/sarama"
	fsAPI "github.com/matrix-org/dendrite/federationsender/api"
	"github.com/matrix-org/dendrite/internal/caching"
	"github.com/matrix-org/dendrite/internal/config"
	"github.com/matrix-org/dendrite/roomserver/storage"
	"github.com/matrix-org/gomatrixserverlib"
)

// RoomserverInternalAPI is an implementation of api.RoomserverInternalAPI
type RoomserverInternalAPI struct {
	DB                   storage.Database
	Cfg                  *config.Dendrite
	Producer             sarama.SyncProducer
	Cache                caching.RoomVersionCache
	ServerName           gomatrixserverlib.ServerName
	KeyRing              gomatrixserverlib.JSONVerifier
	FedClient            *gomatrixserverlib.FederationClient
	OutputRoomEventTopic string     // Kafka topic for new output room events
	mutex                sync.Mutex // Protects calls to processRoomEvent
	fsAPI                fsAPI.FederationSenderInternalAPI
}