Documentation ¶
Overview ¶
Package types provides the types that are used internally within the roomserver.
Index ¶
- Constants
- Variables
- func NewEventJSONsFromHeaderedEvents(hes []*HeaderedEvent) gomatrixserverlib.EventJSONs
- type DeviceOrServerName
- type Event
- type EventMetadata
- type EventNID
- type EventNIDs
- type EventStateKeyNID
- type EventTypeNID
- type HeaderedEvent
- type MissingEventError
- type MissingStateError
- type RejectedError
- type RoomInfo
- type RoomNID
- type StateAtEvent
- type StateAtEventAndReference
- type StateAtEventAndReferences
- type StateBlockNID
- type StateBlockNIDList
- type StateBlockNIDs
- type StateEntries
- type StateEntry
- type StateEntryList
- type StateKeyTuple
- type StateKeyTupleSorter
- type StateSnapshotNID
- type UserRoomKeyPair
Constants ¶
const ( // MRoomCreateNID is the numeric ID for the "m.room.create" event type. MRoomCreateNID = 1 // MRoomPowerLevelsNID is the numeric ID for the "m.room.power_levels" event type. MRoomPowerLevelsNID = 2 // MRoomJoinRulesNID is the numeric ID for the "m.room.join_rules" event type. MRoomJoinRulesNID = 3 // MRoomThirdPartyInviteNID is the numeric ID for the "m.room.third_party_invite" event type. MRoomThirdPartyInviteNID = 4 // MRoomMemberNID is the numeric ID for the "m.room.member" event type. MRoomMemberNID = 5 // MRoomRedactionNID is the numeric ID for the "m.room.redaction" event type. MRoomRedactionNID = 6 // MRoomHistoryVisibilityNID is the numeric ID for the "m.room.history_visibility" event type. MRoomHistoryVisibilityNID = 7 )
const (
// EmptyStateKeyNID is the numeric ID for the empty state key.
EmptyStateKeyNID = 1
)
Variables ¶
var ErrorInvalidRoomInfo = fmt.Errorf("room info is invalid")
Functions ¶
func NewEventJSONsFromHeaderedEvents ¶ added in v0.13.0
func NewEventJSONsFromHeaderedEvents(hes []*HeaderedEvent) gomatrixserverlib.EventJSONs
Types ¶
type DeviceOrServerName ¶ added in v0.13.2
type DeviceOrServerName struct {
// contains filtered or unexported fields
}
Struct to represent a device or a server name.
May be used to designate a caller for functions that can be called by a client (device) or by a server (server name).
Exactly 1 of Device() and ServerName() will return a non-nil result.
func NewDeviceNotServerName ¶ added in v0.13.2
func NewDeviceNotServerName(device userapi.Device) DeviceOrServerName
func NewServerNameNotDevice ¶ added in v0.13.2
func NewServerNameNotDevice(serverName spec.ServerName) DeviceOrServerName
func (*DeviceOrServerName) Device ¶ added in v0.13.2
func (s *DeviceOrServerName) Device() *userapi.Device
func (*DeviceOrServerName) ServerName ¶ added in v0.13.2
func (s *DeviceOrServerName) ServerName() *spec.ServerName
type Event ¶
type Event struct { EventNID EventNID gomatrixserverlib.PDU }
An Event is a gomatrixserverlib.Event with the numeric event ID attached. It is when performing bulk event lookup in the database.
type EventMetadata ¶ added in v0.12.0
type EventNIDs ¶ added in v0.4.0
type EventNIDs []EventNID
EventNIDs is used to sort and dedupe event NIDs.
type EventStateKeyNID ¶
type EventStateKeyNID int64
EventStateKeyNID is a numeric ID for an event state_key.
type HeaderedEvent ¶ added in v0.13.0
type HeaderedEvent struct { gomatrixserverlib.PDU Visibility gomatrixserverlib.HistoryVisibility // TODO: Remove this. This is a temporary workaround to store the userID in the syncAPI. // It really should be the userKey instead. UserID spec.UserID StateKeyResolved *string }
HeaderedEvent is an Event which serialises to the headered form, which includes _room_version and _event_id fields.
func (*HeaderedEvent) CacheCost ¶ added in v0.13.0
func (h *HeaderedEvent) CacheCost() int
func (*HeaderedEvent) MarshalJSON ¶ added in v0.13.0
func (h *HeaderedEvent) MarshalJSON() ([]byte, error)
func (*HeaderedEvent) UnmarshalJSON ¶ added in v0.13.0
func (j *HeaderedEvent) UnmarshalJSON(data []byte) error
type MissingEventError ¶
type MissingEventError string
A MissingEventError is an error that happened because the roomserver was missing requested events from its database.
func (MissingEventError) Error ¶
func (e MissingEventError) Error() string
type MissingStateError ¶ added in v0.6.4
type MissingStateError string
A MissingStateError is an error that happened because the roomserver was missing requested state snapshots from its databases.
func (MissingStateError) Error ¶ added in v0.6.4
func (e MissingStateError) Error() string
type RejectedError ¶ added in v0.6.3
type RejectedError string
A RejectedError is returned when an event is stored as rejected. The error contains the reason why.
func (RejectedError) Error ¶ added in v0.6.3
func (e RejectedError) Error() string
type RoomInfo ¶
type RoomInfo struct { RoomNID RoomNID RoomVersion gomatrixserverlib.RoomVersion // contains filtered or unexported fields }
RoomInfo contains metadata about a room
func (*RoomInfo) SetStateSnapshotNID ¶ added in v0.9.0
func (r *RoomInfo) SetStateSnapshotNID(nid StateSnapshotNID)
func (*RoomInfo) StateSnapshotNID ¶
func (r *RoomInfo) StateSnapshotNID() StateSnapshotNID
type StateAtEvent ¶
type StateAtEvent struct { // The state before the event. BeforeStateSnapshotNID StateSnapshotNID // True if this StateEntry is rejected. State resolution should then treat this // StateEntry as being a message event (not a state event). IsRejected bool // The state entry for the event itself, allows us to calculate the state after the event. StateEntry }
StateAtEvent is the state before and after a matrix event.
func (StateAtEvent) IsStateEvent ¶
func (s StateAtEvent) IsStateEvent() bool
IsStateEvent returns whether the event the state is at is a state event.
type StateAtEventAndReference ¶
type StateAtEventAndReference struct { StateAtEvent EventID string }
StateAtEventAndReference is StateAtEvent and gomatrixserverlib.EventReference glued together. It is used when looking up the latest events in a room in the database. The gomatrixserverlib.EventReference is used to check whether a new event references the event. The StateAtEvent is used to construct the current state of the room from the latest events.
type StateAtEventAndReferences ¶ added in v0.8.5
type StateAtEventAndReferences []StateAtEventAndReference
func (StateAtEventAndReferences) EventIDs ¶ added in v0.8.6
func (s StateAtEventAndReferences) EventIDs() string
func (StateAtEventAndReferences) Len ¶ added in v0.8.5
func (s StateAtEventAndReferences) Len() int
func (StateAtEventAndReferences) Less ¶ added in v0.8.5
func (s StateAtEventAndReferences) Less(a, b int) bool
func (StateAtEventAndReferences) Swap ¶ added in v0.8.5
func (s StateAtEventAndReferences) Swap(a, b int)
type StateBlockNID ¶
type StateBlockNID int64
StateBlockNID is a numeric ID for a block of state data. These blocks of state data are combined to form the actual state.
type StateBlockNIDList ¶
type StateBlockNIDList struct { StateSnapshotNID StateSnapshotNID StateBlockNIDs []StateBlockNID }
StateBlockNIDList is used to return the result of bulk StateBlockNID lookups from the database.
type StateBlockNIDs ¶ added in v0.4.0
type StateBlockNIDs []StateBlockNID
StateBlockNIDs is used to sort and dedupe state block NIDs.
func (StateBlockNIDs) Hash ¶ added in v0.4.0
func (a StateBlockNIDs) Hash() []byte
func (StateBlockNIDs) Len ¶ added in v0.4.0
func (a StateBlockNIDs) Len() int
func (StateBlockNIDs) Less ¶ added in v0.4.0
func (a StateBlockNIDs) Less(i, j int) bool
func (StateBlockNIDs) Swap ¶ added in v0.4.0
func (a StateBlockNIDs) Swap(i, j int)
type StateEntries ¶ added in v0.4.0
type StateEntries []StateEntry
func (StateEntries) Len ¶ added in v0.4.0
func (a StateEntries) Len() int
func (StateEntries) Less ¶ added in v0.4.0
func (a StateEntries) Less(i, j int) bool
func (StateEntries) Swap ¶ added in v0.4.0
func (a StateEntries) Swap(i, j int)
type StateEntry ¶
type StateEntry struct { StateKeyTuple // The numeric ID for the event. EventNID EventNID }
A StateEntry is an entry in the room state of a matrix room.
func DeduplicateStateEntries ¶
func DeduplicateStateEntries(a []StateEntry) []StateEntry
Deduplicate takes a set of state entries and ensures that there are no duplicate (event type, state key) tuples. If there are then we dedupe them, making sure that the latest/highest NIDs are always chosen.
func (StateEntry) LessThan ¶
func (a StateEntry) LessThan(b StateEntry) bool
LessThan returns true if this state entry is less than the other state entry. The ordering is arbitrary and is used to implement binary search and to efficiently deduplicate entries.
type StateEntryList ¶
type StateEntryList struct { StateBlockNID StateBlockNID StateEntries []StateEntry }
StateEntryList is used to return the result of bulk state entry lookups from the database.
type StateKeyTuple ¶
type StateKeyTuple struct { // The numeric ID for the event type. EventTypeNID EventTypeNID // The numeric ID for the state key. EventStateKeyNID EventStateKeyNID }
A StateKeyTuple is a pair of a numeric event type and a numeric state key. It is used to lookup state entries.
func (StateKeyTuple) IsCreate ¶ added in v0.6.3
func (a StateKeyTuple) IsCreate() bool
func (StateKeyTuple) LessThan ¶
func (a StateKeyTuple) LessThan(b StateKeyTuple) bool
LessThan returns true if this state key is less than the other state key. The ordering is arbitrary and is used to implement binary search and to efficiently deduplicate entries.
type StateKeyTupleSorter ¶ added in v0.8.6
type StateKeyTupleSorter []StateKeyTuple
func (StateKeyTupleSorter) Len ¶ added in v0.8.6
func (s StateKeyTupleSorter) Len() int
func (StateKeyTupleSorter) Less ¶ added in v0.8.6
func (s StateKeyTupleSorter) Less(i, j int) bool
func (StateKeyTupleSorter) Swap ¶ added in v0.8.6
func (s StateKeyTupleSorter) Swap(i, j int)
func (StateKeyTupleSorter) TypesAndStateKeysAsArrays ¶ added in v0.8.6
func (s StateKeyTupleSorter) TypesAndStateKeysAsArrays() (eventTypeNIDs []int64, eventStateKeyNIDs []int64)
List the unique eventTypeNIDs and eventStateKeyNIDs. Assumes that the list is sorted.
type StateSnapshotNID ¶
type StateSnapshotNID int64
StateSnapshotNID is a numeric ID for the state at an event.
type UserRoomKeyPair ¶ added in v0.13.0
type UserRoomKeyPair struct { RoomNID RoomNID EventStateKeyNID EventStateKeyNID }