syncapi

package
v0.0.0-...-9835270 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2021 License: AGPL-3.0, Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const KeyChangeSchema = `` /* 543-byte string literal not displayed */
View Source
const OutputMinStreamSchema = `` /* 262-byte string literal not displayed */

Variables

This section is empty.

Functions

func NewDatabase

func NewDatabase(driver, createAddr, address, underlying, topic string, useAsync bool) (interface{}, error)

NewSyncServerDatabase creates a new sync server database

Types

type Database

type Database struct {
	AsyncSave bool
	// contains filtered or unexported fields
}

SyncServerDatabase represents a sync server database

func (*Database) DeleteDeviceStdMessage

func (d *Database) DeleteDeviceStdMessage(
	ctx context.Context, targetUID, targetDevice string,
) error

func (*Database) DeleteMacStdMessage

func (d *Database) DeleteMacStdMessage(
	ctx context.Context, identifier, targetUID, targetDevice string,
) error

func (*Database) DeleteStdMessage

func (d *Database) DeleteStdMessage(
	ctx context.Context, id int64, targetUID, targetDevice string,
) error

func (*Database) Events

func (d *Database) Events(ctx context.Context, eventIDs []string) ([]gomatrixserverlib.ClientEvent, error)

Events lookups a list of event by their event ID. Returns a list of events matching the requested IDs found in the database. If an event is not found in the database then it will be omitted from the list. Returns an error if there was a problem talking with the database. Does not include any transaction IDs in the returned events.

func (*Database) GetAllSyncRooms

func (d *Database) GetAllSyncRooms() ([]string, error)

func (*Database) GetDB

func (d *Database) GetDB() *sql.DB

func (*Database) GetEventRaw

func (d *Database) GetEventRaw(ctx context.Context, eventID string) (int64, []byte, error)

func (*Database) GetFriendShip

func (d *Database) GetFriendShip(
	ctx context.Context,
	roomIDs []string,
) ([]string, error)

func (*Database) GetHistoryClientDataStream

func (d *Database) GetHistoryClientDataStream(
	ctx context.Context,
	userID string,
	limit int,
) (streams []types.ActDataStreamUpdate, offset []int64, err error)

func (*Database) GetHistoryEvents

func (d *Database) GetHistoryEvents(
	ctx context.Context,
	roomid string,
	limit int,
) (events []gomatrixserverlib.ClientEvent, offsets []int64, err error)

func (*Database) GetHistoryKeyChangeStream

func (d *Database) GetHistoryKeyChangeStream(
	ctx context.Context,
	users []string,
) (streams []types.KeyChangeStream, offset []int64, err error)

func (*Database) GetHistoryPresenceDataStream

func (d *Database) GetHistoryPresenceDataStream(
	ctx context.Context, limit, offset int,
) ([]types.PresenceStream, []int64, error)

func (*Database) GetHistoryReceiptDataStream

func (d *Database) GetHistoryReceiptDataStream(
	ctx context.Context, roomID string,
) (streams []types.ReceiptStream, offset []int64, err error)

func (*Database) GetHistoryStdStream

func (d *Database) GetHistoryStdStream(
	ctx context.Context,
	targetUserID,
	targetDeviceID string,
	limit int64,
) ([]types.StdEvent, []int64, error)

func (*Database) GetInviteRidsForUser

func (d *Database) GetInviteRidsForUser(
	ctx context.Context,
	userID string,
) ([]string, []int64, []string, error)

func (*Database) GetJoinRoomOffsets

func (d *Database) GetJoinRoomOffsets(
	ctx context.Context,
	eventIDs []string,
) ([]int64, []string, []string, error)

func (*Database) GetLeaveRidsForUser

func (d *Database) GetLeaveRidsForUser(
	ctx context.Context,
	userID string,
) ([]string, []int64, []string, error)

func (*Database) GetMsgEventsByRoomIDMigration

func (d *Database) GetMsgEventsByRoomIDMigration(ctx context.Context, roomID string) ([]int64, []string, [][]byte, error)

func (*Database) GetRidsForUser

func (d *Database) GetRidsForUser(
	ctx context.Context,
	userID string,
) ([]string, []int64, []string, error)

func (*Database) GetRoomLastOffsets

func (d *Database) GetRoomLastOffsets(
	ctx context.Context,
	roomIDs []string,
) (map[string]int64, error)

func (*Database) GetRoomReceiptLastOffsets

func (d *Database) GetRoomReceiptLastOffsets(
	ctx context.Context,
	roomIDs []string,
) (map[string]int64, error)

func (*Database) GetRoomStateByEventID

func (d *Database) GetRoomStateByEventID(ctx context.Context, eventID string) ([]byte, error)

func (*Database) GetRoomStateTotal

func (d *Database) GetRoomStateTotal(ctx context.Context) (int, error)

func (*Database) GetRoomStateWithLimit

func (d *Database) GetRoomStateWithLimit(ctx context.Context, limit, offset int64) ([]string, [][]byte, error)

func (*Database) GetStateEventsForRoom

func (d *Database) GetStateEventsForRoom(
	ctx context.Context, roomID string,
) ([]gomatrixserverlib.ClientEvent, []int64, error)

GetStateEventsForRoom fetches the state events for a given room. Returns an empty slice if no state events could be found for this room. Returns an error if there was an issue with the retrieval.

func (*Database) GetStateEventsStreamForRoom

func (d *Database) GetStateEventsStreamForRoom(
	ctx context.Context, roomID string,
) ([]gomatrixserverlib.ClientEvent, []int64, error)

func (*Database) GetStateEventsStreamForRoomBeforePos

func (d *Database) GetStateEventsStreamForRoomBeforePos(
	ctx context.Context, roomID string, pos int64,
) ([]gomatrixserverlib.ClientEvent, []int64, error)

func (*Database) GetSyncEvents

func (d *Database) GetSyncEvents(ctx context.Context, start, end int64, limit, offset int64) ([][]byte, error)

func (*Database) GetSyncMsgEventsMigration

func (d *Database) GetSyncMsgEventsMigration(ctx context.Context, limit, offset int64) ([]int64, []string, [][]byte, error)

func (*Database) GetSyncMsgEventsTotalMigration

func (d *Database) GetSyncMsgEventsTotalMigration(ctx context.Context) (int, int64, error)

func (*Database) GetUserHistoryReceiptData

func (d *Database) GetUserHistoryReceiptData(
	ctx context.Context, roomID, userID string,
) (evtOffset int64, content []byte, err error)

func (*Database) GetUserMaxReceiptOffset

func (d *Database) GetUserMaxReceiptOffset(
	ctx context.Context,
	userID string,
) (offsets int64, err error)

func (*Database) GetUserPresenceDataStream

func (d *Database) GetUserPresenceDataStream(
	ctx context.Context, users []string,
) ([]types.PresenceStream, []int64, error)

func (*Database) InsertEventRaw

func (d *Database) InsertEventRaw(
	ctx context.Context,
	id int64, roomId, eventId string, json []byte, addState, removeState []string,
	device, txnID, eventType string, domainOffset, depth int64, domain string,
	originTs int64,
) (err error)

func (*Database) InsertKeyChange

func (d *Database) InsertKeyChange(ctx context.Context, changedUserID string, offset int64) error

func (*Database) InsertOutputMinStream

func (d *Database) InsertOutputMinStream(
	ctx context.Context,
	id int64,
	roomID string,
) error

func (*Database) InsertStdMessage

func (d *Database) InsertStdMessage(
	ctx context.Context, stdEvent syncapitypes.StdHolder, targetUID, targetDevice, identifier string, offset int64,
) (err error)

InsertStdMessage insert std message

func (*Database) InsertUserTimeLine

func (d *Database) InsertUserTimeLine(
	ctx context.Context,
	id int64,
	roomID string,
	evtNID int64,
	userID,
	roomState string,
	ts,
	eventOffset int64,
) (err error)

func (*Database) OnDeleteDeviceStdMessage

func (d *Database) OnDeleteDeviceStdMessage(
	ctx context.Context, targetUID, targetDevice string,
) error

func (*Database) OnDeleteMacStdMessage

func (d *Database) OnDeleteMacStdMessage(
	ctx context.Context, identifier, targetUID, targetDevice string,
) error

func (*Database) OnDeleteStdMessage

func (d *Database) OnDeleteStdMessage(
	ctx context.Context, id int64, targetUID, targetDevice string,
) error

func (*Database) OnInsertKeyChange

func (d *Database) OnInsertKeyChange(ctx context.Context, id int64, changedUserID string) error

func (*Database) OnInsertOutputMinStream

func (d *Database) OnInsertOutputMinStream(
	ctx context.Context,
	id int64,
	roomID string,
) error

func (*Database) OnInsertStdMessage

func (d *Database) OnInsertStdMessage(
	ctx context.Context, id int64, stdEvent syncapitypes.StdHolder, targetUID, targetDevice, identifier string,
) (pos int64, err error)

func (*Database) OnInsertUserTimeLine

func (d *Database) OnInsertUserTimeLine(
	ctx context.Context,
	id int64,
	roomID string,
	evtNID int64,
	userID,
	roomState string,
	ts,
	eventOffset int64,
) (err error)

func (*Database) OnUpdateEvent

func (d *Database) OnUpdateEvent(ctx context.Context, eventID, roomID string, eventJson []byte, eventType string) error

func (*Database) OnUpdateSyncEvent

func (d *Database) OnUpdateSyncEvent(ctx context.Context, domainOffset, originTs int64, domain, roomID, eventID string) error

func (*Database) OnUpsertClientDataStream

func (d *Database) OnUpsertClientDataStream(
	ctx context.Context, id int64, userID, roomID, dataType, streamType string,
) (syncapitypes.StreamPosition, error)

func (*Database) OnUpsertPresenceDataStream

func (d *Database) OnUpsertPresenceDataStream(
	ctx context.Context, id int64, userID, content string,
) (syncapitypes.StreamPosition, error)

func (*Database) OnUpsertReceiptDataStream

func (d *Database) OnUpsertReceiptDataStream(
	ctx context.Context, id, evtOffset int64, roomID, content string,
) error

func (*Database) OnUpsertUserReceiptData

func (d *Database) OnUpsertUserReceiptData(
	ctx context.Context, roomID, userID, content string, evtOffset int64,
) (syncapitypes.StreamPosition, error)

func (*Database) SelectDomainMaxOffset

func (d *Database) SelectDomainMaxOffset(
	ctx context.Context,
	roomID string,
) ([]string, []int64, error)

func (*Database) SelectEventsByDir

func (d *Database) SelectEventsByDir(
	ctx context.Context,
	userID, roomID string, dir string, from int64, limit int,
) ([]gomatrixserverlib.ClientEvent, []int64, []int64, error, int64, int64)

func (*Database) SelectEventsByDirRange

func (d *Database) SelectEventsByDirRange(
	ctx context.Context,
	userID, roomID string, dir string, from, to int64,
) ([]gomatrixserverlib.ClientEvent, []int64, []int64, error, int64, int64)

func (*Database) SelectOutputMinStream

func (d *Database) SelectOutputMinStream(
	ctx context.Context,
	roomID string,
) (int64, error)

func (*Database) SelectTypeEventForward

func (d *Database) SelectTypeEventForward(
	ctx context.Context,
	typ []string, roomID string,
) (events []gomatrixserverlib.ClientEvent, offsets []int64, err error)

func (*Database) SelectUserTimeLineEvents

func (d *Database) SelectUserTimeLineEvents(
	ctx context.Context,
	userID string,
	id int64,
	limit int,
) (events []syncapitypes.UserTimeLineStream, err error)

func (*Database) SelectUserTimeLineHistory

func (d *Database) SelectUserTimeLineHistory(
	ctx context.Context,
	userID string,
	limit int,
) (events []syncapitypes.UserTimeLineStream, err error)

func (*Database) SelectUserTimeLineMinPos

func (d *Database) SelectUserTimeLineMinPos(
	ctx context.Context,
	userID string,
) (int64, error)

func (*Database) SelectUserTimeLineOffset

func (d *Database) SelectUserTimeLineOffset(
	ctx context.Context,
	userID string,
	roomOffsets []int64,
) (events []syncapitypes.UserTimeLineStream, err error)

func (*Database) SetGauge

func (d *Database) SetGauge(qryDBGauge mon.LabeledGauge)

func (*Database) SetIDGenerator

func (d *Database) SetIDGenerator(idg *uid.UidGenerator)

func (*Database) StreamEvents

func (d *Database) StreamEvents(ctx context.Context, eventIDs []string) ([]gomatrixserverlib.ClientEvent, []int64, error)

func (*Database) UpdateEvent

func (d *Database) UpdateEvent(
	ctx context.Context, event gomatrixserverlib.ClientEvent, eventID string, eventType string,
	RoomID string,
) error

func (*Database) UpdateRoomState

func (d *Database) UpdateRoomState(
	ctx context.Context,
	event gomatrixserverlib.ClientEvent,
	membership *string,
	streamPos syncapitypes.StreamPosition,
) error

func (*Database) UpdateRoomState2

func (d *Database) UpdateRoomState2(
	ctx context.Context,
	roomId, eventId string, json []byte,
	eventType, stateKey string,
	membership string, addedAt int64,
) error

func (*Database) UpdateRoomStateRaw

func (d *Database) UpdateRoomStateRaw(
	ctx context.Context,
	roomId, eventId string, json []byte,
	eventType, stateKey string,
	membership string, addedAt int64,
) error

func (*Database) UpdateRoomStateWithEventID

func (d *Database) UpdateRoomStateWithEventID(ctx context.Context, eventID string, eventBytes []byte) error

func (*Database) UpdateSyncEvent

func (d *Database) UpdateSyncEvent(ctx context.Context, domainOffset, originTs int64, domain, roomID, eventID string) error

func (*Database) UpdateSyncMemberEvent

func (d *Database) UpdateSyncMemberEvent(
	ctx context.Context, userID, oldAvatarUrl, newAvatarUrl string,
) error

func (*Database) UpdateSyncMsgEventMigration

func (d *Database) UpdateSyncMsgEventMigration(ctx context.Context, id int64, EncryptedEventBytes []byte) error

func (*Database) UpsertClientDataStream

func (d *Database) UpsertClientDataStream(
	ctx context.Context, userID, roomID, dataType, streamType string,
) (syncapitypes.StreamPosition, error)

func (*Database) UpsertPresenceDataStream

func (d *Database) UpsertPresenceDataStream(
	ctx context.Context, userID, content string,
) (syncapitypes.StreamPosition, error)

func (*Database) UpsertReceiptDataStream

func (d *Database) UpsertReceiptDataStream(
	ctx context.Context, offset, evtOffset int64, roomID, content string,
) error

func (*Database) UpsertUserReceiptData

func (d *Database) UpsertUserReceiptData(
	ctx context.Context, roomID, userID, content string, evtOffset int64,
) error

func (*Database) WriteDBEvent

func (d *Database) WriteDBEvent(ctx context.Context, update *dbtypes.DBEvent) error

WriteOutputEvents implements OutputRoomEventWriter

func (*Database) WriteDBEventWithTbl

func (d *Database) WriteDBEventWithTbl(ctx context.Context, update *dbtypes.DBEvent, tbl string) error

func (*Database) WriteEvent

func (d *Database) WriteEvent(
	ctx context.Context,
	ev *gomatrixserverlib.ClientEvent,
	addStateEvents []gomatrixserverlib.ClientEvent,
	addStateEventIDs, removeStateEventIDs []string,
	transactionID *roomservertypes.TransactionID,
	offset, domainOffset, depth int64, domain string,
	originTs int64,
) error

WriteEvent into the database. It is not safe to call this function from multiple goroutines, as it would create races when generating the stream position for this event. Returns the sync stream position for the inserted event. Returns an error if there was a problem inserting this event.

type RoomEventVerbose

type RoomEventVerbose struct {
	Stream int64
	RoomID string
	Event  gomatrixserverlib.ClientEvent
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL