mirror of
https://github.com/matrix-org/dendrite
synced 2024-06-08 15:38:58 +02:00
41c6a3737e
* A kafkaesque room event consumer for the roomserver. Implement the main input loop for the roomserver. It will receive events from a kafkaesque event source and track where it is in the stream. It currently does nothing with the events it consumes.
36 lines
1.4 KiB
Go
36 lines
1.4 KiB
Go
// Package api provides the types that are used to communicate with the roomserver.
|
|
package api
|
|
|
|
const (
|
|
// KindOutlier event fall outside the contiguous event graph.
|
|
// We do not have the state for these events.
|
|
// These events are state events used to authenticate other events.
|
|
// They can become part of the contiguous event graph via backfill.
|
|
KindOutlier = 1
|
|
// KindJoin event start a new contiguous event graph. The event must be a
|
|
// m.room.member event joining this server to the room. This must come with
|
|
// the state at the event. If the event is contiguous with the existing
|
|
// graph for the room then it is treated as a normal new event.
|
|
KindJoin = 2
|
|
// KindNew event extend the contiguous graph going forwards.
|
|
// They usually don't need state, but may include state if the
|
|
// there was a new event that references an event that we don't
|
|
// have a copy of.
|
|
KindNew = 3
|
|
// KindBackfill event extend the contiguous graph going backwards.
|
|
// They always have state.
|
|
KindBackfill = 4
|
|
)
|
|
|
|
// InputRoomEvent is a matrix room event to add to the room server database.
|
|
type InputRoomEvent struct {
|
|
// Whether this event is new, backfilled or an outlier.
|
|
// This controls how the event is processed.
|
|
Kind int
|
|
// The event JSON for the event to add.
|
|
Event []byte
|
|
// Optional list of state event IDs forming the state before this event.
|
|
// These state events must have already been persisted.
|
|
State []string
|
|
}
|