mirror of
https://github.com/hoernschen/dendrite.git
synced 2025-07-31 13:22:46 +00:00
Remove gmsl.HeaderedEvent (#3068)
Replaced with types.HeaderedEvent _for now_. In reality we want to move them all to gmsl.Event and only use HeaderedEvent when we _need_ to bundle the version/event ID with the event (seriailsation boundaries, and even then only when we don't have the room version). Requires https://github.com/matrix-org/gomatrixserverlib/pull/373
This commit is contained in:
parent
2475cf4b61
commit
b189edf4f4
108 changed files with 660 additions and 514 deletions
|
@ -20,6 +20,7 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/matrix-org/dendrite/roomserver/types"
|
||||
"github.com/matrix-org/gomatrixserverlib"
|
||||
"github.com/matrix-org/gomatrixserverlib/spec"
|
||||
)
|
||||
|
@ -79,15 +80,15 @@ func WithOrigin(origin spec.ServerName) eventModifier {
|
|||
}
|
||||
|
||||
// Reverse a list of events
|
||||
func Reversed(in []*gomatrixserverlib.HeaderedEvent) []*gomatrixserverlib.HeaderedEvent {
|
||||
out := make([]*gomatrixserverlib.HeaderedEvent, len(in))
|
||||
func Reversed(in []*types.HeaderedEvent) []*types.HeaderedEvent {
|
||||
out := make([]*types.HeaderedEvent, len(in))
|
||||
for i := 0; i < len(in); i++ {
|
||||
out[i] = in[len(in)-i-1]
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func AssertEventIDsEqual(t *testing.T, gotEventIDs []string, wants []*gomatrixserverlib.HeaderedEvent) {
|
||||
func AssertEventIDsEqual(t *testing.T, gotEventIDs []string, wants []*types.HeaderedEvent) {
|
||||
t.Helper()
|
||||
if len(gotEventIDs) != len(wants) {
|
||||
t.Errorf("length mismatch: got %d events, want %d", len(gotEventIDs), len(wants))
|
||||
|
@ -102,7 +103,7 @@ func AssertEventIDsEqual(t *testing.T, gotEventIDs []string, wants []*gomatrixse
|
|||
}
|
||||
}
|
||||
|
||||
func AssertEventsEqual(t *testing.T, gots, wants []*gomatrixserverlib.HeaderedEvent) {
|
||||
func AssertEventsEqual(t *testing.T, gots, wants []*types.HeaderedEvent) {
|
||||
t.Helper()
|
||||
if len(gots) != len(wants) {
|
||||
t.Fatalf("length mismatch: got %d events, want %d", len(gots), len(wants))
|
||||
|
|
|
@ -23,6 +23,7 @@ import (
|
|||
|
||||
"github.com/matrix-org/dendrite/federationapi/storage/shared/receipt"
|
||||
"github.com/matrix-org/dendrite/federationapi/types"
|
||||
rstypes "github.com/matrix-org/dendrite/roomserver/types"
|
||||
"github.com/matrix-org/gomatrixserverlib"
|
||||
"github.com/matrix-org/gomatrixserverlib/spec"
|
||||
)
|
||||
|
@ -36,7 +37,7 @@ type InMemoryFederationDatabase struct {
|
|||
pendingEDUServers map[spec.ServerName]struct{}
|
||||
blacklistedServers map[spec.ServerName]struct{}
|
||||
assumedOffline map[spec.ServerName]struct{}
|
||||
pendingPDUs map[*receipt.Receipt]*gomatrixserverlib.HeaderedEvent
|
||||
pendingPDUs map[*receipt.Receipt]*rstypes.HeaderedEvent
|
||||
pendingEDUs map[*receipt.Receipt]*gomatrixserverlib.EDU
|
||||
associatedPDUs map[spec.ServerName]map[*receipt.Receipt]struct{}
|
||||
associatedEDUs map[spec.ServerName]map[*receipt.Receipt]struct{}
|
||||
|
@ -49,7 +50,7 @@ func NewInMemoryFederationDatabase() *InMemoryFederationDatabase {
|
|||
pendingEDUServers: make(map[spec.ServerName]struct{}),
|
||||
blacklistedServers: make(map[spec.ServerName]struct{}),
|
||||
assumedOffline: make(map[spec.ServerName]struct{}),
|
||||
pendingPDUs: make(map[*receipt.Receipt]*gomatrixserverlib.HeaderedEvent),
|
||||
pendingPDUs: make(map[*receipt.Receipt]*rstypes.HeaderedEvent),
|
||||
pendingEDUs: make(map[*receipt.Receipt]*gomatrixserverlib.EDU),
|
||||
associatedPDUs: make(map[spec.ServerName]map[*receipt.Receipt]struct{}),
|
||||
associatedEDUs: make(map[spec.ServerName]map[*receipt.Receipt]struct{}),
|
||||
|
@ -64,7 +65,7 @@ func (d *InMemoryFederationDatabase) StoreJSON(
|
|||
d.dbMutex.Lock()
|
||||
defer d.dbMutex.Unlock()
|
||||
|
||||
var event gomatrixserverlib.HeaderedEvent
|
||||
var event rstypes.HeaderedEvent
|
||||
if err := json.Unmarshal([]byte(js), &event); err == nil {
|
||||
nidMutex.Lock()
|
||||
defer nidMutex.Unlock()
|
||||
|
@ -91,12 +92,12 @@ func (d *InMemoryFederationDatabase) GetPendingPDUs(
|
|||
ctx context.Context,
|
||||
serverName spec.ServerName,
|
||||
limit int,
|
||||
) (pdus map[*receipt.Receipt]*gomatrixserverlib.HeaderedEvent, err error) {
|
||||
) (pdus map[*receipt.Receipt]*rstypes.HeaderedEvent, err error) {
|
||||
d.dbMutex.Lock()
|
||||
defer d.dbMutex.Unlock()
|
||||
|
||||
pduCount := 0
|
||||
pdus = make(map[*receipt.Receipt]*gomatrixserverlib.HeaderedEvent)
|
||||
pdus = make(map[*receipt.Receipt]*rstypes.HeaderedEvent)
|
||||
if receipts, ok := d.associatedPDUs[serverName]; ok {
|
||||
for dbReceipt := range receipts {
|
||||
if event, ok := d.pendingPDUs[dbReceipt]; ok {
|
||||
|
|
23
test/room.go
23
test/room.go
|
@ -25,6 +25,7 @@ import (
|
|||
"github.com/matrix-org/gomatrixserverlib/spec"
|
||||
|
||||
"github.com/matrix-org/dendrite/internal/eventutil"
|
||||
rstypes "github.com/matrix-org/dendrite/roomserver/types"
|
||||
)
|
||||
|
||||
type Preset int
|
||||
|
@ -47,8 +48,8 @@ type Room struct {
|
|||
creator *User
|
||||
|
||||
authEvents gomatrixserverlib.AuthEvents
|
||||
currentState map[string]*gomatrixserverlib.HeaderedEvent
|
||||
events []*gomatrixserverlib.HeaderedEvent
|
||||
currentState map[string]*rstypes.HeaderedEvent
|
||||
events []*rstypes.HeaderedEvent
|
||||
}
|
||||
|
||||
// Create a new test room. Automatically creates the initial create events.
|
||||
|
@ -64,7 +65,7 @@ func NewRoom(t *testing.T, creator *User, modifiers ...roomModifier) *Room {
|
|||
authEvents: gomatrixserverlib.NewAuthEvents(nil),
|
||||
preset: PresetPublicChat,
|
||||
Version: gomatrixserverlib.RoomVersionV9,
|
||||
currentState: make(map[string]*gomatrixserverlib.HeaderedEvent),
|
||||
currentState: make(map[string]*rstypes.HeaderedEvent),
|
||||
visibility: gomatrixserverlib.HistoryVisibilityShared,
|
||||
}
|
||||
for _, m := range modifiers {
|
||||
|
@ -130,7 +131,7 @@ func (r *Room) insertCreateEvents(t *testing.T) {
|
|||
}
|
||||
|
||||
// Create an event in this room but do not insert it. Does not modify the room in any way (depth, fwd extremities, etc) so is thread-safe.
|
||||
func (r *Room) CreateEvent(t *testing.T, creator *User, eventType string, content interface{}, mods ...eventModifier) *gomatrixserverlib.HeaderedEvent {
|
||||
func (r *Room) CreateEvent(t *testing.T, creator *User, eventType string, content interface{}, mods ...eventModifier) *rstypes.HeaderedEvent {
|
||||
t.Helper()
|
||||
depth := 1 + len(r.events) // depth starts at 1
|
||||
|
||||
|
@ -203,18 +204,18 @@ func (r *Room) CreateEvent(t *testing.T, creator *User, eventType string, conten
|
|||
if err = gomatrixserverlib.Allowed(ev, &r.authEvents); err != nil {
|
||||
t.Fatalf("CreateEvent[%s]: failed to verify event was allowed: %s", eventType, err)
|
||||
}
|
||||
headeredEvent := ev.Headered(r.Version)
|
||||
headeredEvent := &rstypes.HeaderedEvent{Event: ev}
|
||||
headeredEvent.Visibility = r.visibility
|
||||
return headeredEvent
|
||||
}
|
||||
|
||||
// Add a new event to this room DAG. Not thread-safe.
|
||||
func (r *Room) InsertEvent(t *testing.T, he *gomatrixserverlib.HeaderedEvent) {
|
||||
func (r *Room) InsertEvent(t *testing.T, he *rstypes.HeaderedEvent) {
|
||||
t.Helper()
|
||||
// Add the event to the list of auth/state events
|
||||
r.events = append(r.events, he)
|
||||
if he.StateKey() != nil {
|
||||
err := r.authEvents.AddEvent(he.Unwrap())
|
||||
err := r.authEvents.AddEvent(he.Event)
|
||||
if err != nil {
|
||||
t.Fatalf("InsertEvent: failed to add event to auth events: %s", err)
|
||||
}
|
||||
|
@ -222,12 +223,12 @@ func (r *Room) InsertEvent(t *testing.T, he *gomatrixserverlib.HeaderedEvent) {
|
|||
}
|
||||
}
|
||||
|
||||
func (r *Room) Events() []*gomatrixserverlib.HeaderedEvent {
|
||||
func (r *Room) Events() []*rstypes.HeaderedEvent {
|
||||
return r.events
|
||||
}
|
||||
|
||||
func (r *Room) CurrentState() []*gomatrixserverlib.HeaderedEvent {
|
||||
events := make([]*gomatrixserverlib.HeaderedEvent, len(r.currentState))
|
||||
func (r *Room) CurrentState() []*rstypes.HeaderedEvent {
|
||||
events := make([]*rstypes.HeaderedEvent, len(r.currentState))
|
||||
i := 0
|
||||
for _, e := range r.currentState {
|
||||
events[i] = e
|
||||
|
@ -236,7 +237,7 @@ func (r *Room) CurrentState() []*gomatrixserverlib.HeaderedEvent {
|
|||
return events
|
||||
}
|
||||
|
||||
func (r *Room) CreateAndInsert(t *testing.T, creator *User, eventType string, content interface{}, mods ...eventModifier) *gomatrixserverlib.HeaderedEvent {
|
||||
func (r *Room) CreateAndInsert(t *testing.T, creator *User, eventType string, content interface{}, mods ...eventModifier) *rstypes.HeaderedEvent {
|
||||
t.Helper()
|
||||
he := r.CreateEvent(t, creator, eventType, content, mods...)
|
||||
r.InsertEvent(t, he)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue