Uniform Chat
  • Uniform.Matrix
  • API
Search Results for

    Show / Hide Table of Contents
    • LiveKit.Proto
      • ActiveSpeakerUpdate
      • AddTrackRequest
      • AudioCodec
      • AudioTrackFeature
      • BackupCodecPolicy
      • CandidateProtocol
      • ChatMessage
      • ClientConfigSetting
      • ClientConfiguration
      • ClientInfo
      • ClientInfo.Types
      • ClientInfo.Types.Capability
      • ClientInfo.Types.SDK
      • Codec
      • ConnectionQuality
      • ConnectionQualityInfo
      • ConnectionQualityUpdate
      • ConnectionSettings
      • DataBlob
      • DataBlobKey
      • DataBlobKey.KeyOneofCase
      • DataChannelInfo
      • DataChannelReceiveState
      • DataPacket
      • DataPacket.Types
      • DataPacket.Types.Kind
      • DataPacket.ValueOneofCase
      • DataStream
      • DataStream.Types
      • DataStream.Types.ByteHeader
      • DataStream.Types.Chunk
      • DataStream.Types.CompressionType
      • DataStream.Types.Header
      • DataStream.Types.Header.ContentHeaderOneofCase
      • DataStream.Types.OperationType
      • DataStream.Types.TextHeader
      • DataStream.Types.Trailer
      • DataTrackExtensionID
      • DataTrackExtensionParticipantSid
      • DataTrackFrameEncoding
      • DataTrackFrameEncoding.Types
      • DataTrackFrameEncoding.Types.WellKnownFrameEncoding
      • DataTrackFrameEncoding.ValueOneofCase
      • DataTrackInfo
      • DataTrackSchemaEncoding
      • DataTrackSchemaEncoding.Types
      • DataTrackSchemaEncoding.Types.WellKnownSchemaEncoding
      • DataTrackSchemaEncoding.ValueOneofCase
      • DataTrackSchemaId
      • DataTrackSubscriberHandles
      • DataTrackSubscriberHandles.Types
      • DataTrackSubscriberHandles.Types.PublishedDataTrack
      • DataTrackSubscriptionOptions
      • DependencyDescriptorForwarderState
      • DisabledCodecs
      • DisconnectReason
      • EncryptedPacket
      • EncryptedPacketPayload
      • EncryptedPacketPayload.ValueOneofCase
      • Encryption
      • Encryption.Types
      • Encryption.Types.Type
      • EventMetric
      • FilterParams
      • GetDataBlobRequest
      • GetDataBlobResponse
      • ICEServer
      • ImageCodec
      • JoinRequest
      • JoinResponse
      • LeaveRequest
      • LeaveRequest.Types
      • LeaveRequest.Types.Action
      • ListUpdate
      • LivekitMetricsReflection
      • LivekitModelsReflection
      • LivekitRtcReflection
      • MediaSectionsRequirement
      • MetricLabel
      • MetricSample
      • MetricsBatch
      • MetricsRecordingHeader
      • MuteTrackRequest
      • NegotiatedDataChannelID
      • OptionsExtensions
      • OptionsReflection
      • PacketTrailerFeature
      • Pagination
      • ParticipantInfo
      • ParticipantInfo.Types
      • ParticipantInfo.Types.Kind
      • ParticipantInfo.Types.KindDetail
      • ParticipantInfo.Types.State
      • ParticipantPermission
      • ParticipantTracks
      • ParticipantUpdate
      • Ping
      • PlayoutDelay
      • Pong
      • PublishDataTrackRequest
      • PublishDataTrackResponse
      • RTCPSenderReportState
      • RTPDrift
      • RTPForwarderState
      • RTPForwarderState.CodecMungerOneofCase
      • RTPMungerState
      • RTPStats
      • ReconnectReason
      • ReconnectResponse
      • RegionInfo
      • RegionSettings
      • RequestResponse
      • RequestResponse.RequestOneofCase
      • RequestResponse.Types
      • RequestResponse.Types.Reason
      • Room
      • RoomEndReason
      • RoomMovedResponse
      • RoomUpdate
      • RpcAck
      • RpcError
      • RpcRequest
      • RpcResponse
      • RpcResponse.ValueOneofCase
      • Sensitivity
      • ServerInfo
      • ServerInfo.Types
      • ServerInfo.Types.Edition
      • SessionDescription
      • SignalRequest
      • SignalRequest.MessageOneofCase
      • SignalResponse
      • SignalResponse.MessageOneofCase
      • SignalTarget
      • SimulateScenario
      • SimulateScenario.ScenarioOneofCase
      • SimulcastCodec
      • SimulcastCodecInfo
      • SipDTMF
      • SpeakerInfo
      • SpeakersChanged
      • StoreDataBlobRequest
      • StoreDataBlobResponse
      • StreamState
      • StreamStateInfo
      • StreamStateUpdate
      • SubscribedAudioCodec
      • SubscribedAudioCodecUpdate
      • SubscribedCodec
      • SubscribedQuality
      • SubscribedQualityUpdate
      • SubscriptionError
      • SubscriptionPermission
      • SubscriptionPermissionUpdate
      • SubscriptionResponse
      • SyncState
      • TimeSeriesMetric
      • TimedVersion
      • TokenPagination
      • TrackInfo
      • TrackPermission
      • TrackPublishedResponse
      • TrackSource
      • TrackSubscribed
      • TrackType
      • TrackUnpublishedResponse
      • Transcription
      • TranscriptionSegment
      • TrickleRequest
      • UnpublishDataTrackRequest
      • UnpublishDataTrackResponse
      • UpdateDataSubscription
      • UpdateDataSubscription.Types
      • UpdateDataSubscription.Types.Update
      • UpdateLocalAudioTrack
      • UpdateLocalVideoTrack
      • UpdateParticipantMetadata
      • UpdateSubscription
      • UpdateTrackSettings
      • UpdateVideoLayers
      • UserPacket
      • VP8MungerState
      • VideoCodec
      • VideoConfiguration
      • VideoLayer
      • VideoLayer.Types
      • VideoLayer.Types.Mode
      • VideoQuality
      • WebhookConfig
      • WrappedJoinRequest
      • WrappedJoinRequest.Types
      • WrappedJoinRequest.Types.Compression
    • Uniform.Chat.Avalonia
      • App
      • ClipboardFile
      • GuiPlatform
    • Uniform.Chat.Avalonia.Services
      • AccountCreator
      • AccountMemory
      • AvaloniaUiDispatcher
      • ClientConnection
      • IAccountCreator
      • INotifier
      • IPushService
      • IUiDispatcher
      • PasswordRequiredException
      • PushDistributor
      • PushRegistration
      • ShareInbox
      • SharedContent
      • SharedFile
      • SignIn
    • Uniform.Chat.Avalonia.ViewModels
      • ActionSheetViewModel
      • AdminAccountItem
      • AdminReportItem
      • AdminSection
      • AdminTokenItem
      • AdminViewModel
      • AppTheme
      • AudioTestViewModel
      • CallViewModel
      • ChatViewModel
      • ConnectingViewModel
      • DeviceItem
      • DirectoryViewModel
      • LicenseEntry
      • LicensesViewModel
      • LogFileItem
      • LoginViewModel
      • LogsViewModel
      • MainViewModel
      • MemberItem
      • MessageKind
      • MessageList
      • MessageViewModel
      • PublicRoomItem
      • RoomItemViewModel
      • SecurityViewModel
      • SettingsViewModel
      • SheetAction
      • SheetDetail
      • StatusLine
      • VerificationViewModel
      • VideoFeed
      • ViewModelBase
    • Uniform.Chat.Avalonia.Views
      • ActionSheetView
      • AdminView
      • ChatView
      • ConnectingView
      • DirectoryView
      • LicensesView
      • LinkClickedEventArgs
      • LoginView
      • MainView
      • MainWindow
      • RichText
      • SecurityView
      • SenderColorConverter
      • SettingsView
      • TextScale
      • VerificationView
      • VideoView
    • Uniform.Chat.Desktop
      • Program
    • Uniform.Chat.Desktop.Cameras
      • EncodingCamera
      • MediaFoundationCamera
      • V4l2Camera
    • Uniform.Chat.Desktop.Notifications
      • FreeDesktopNotifier
    • Uniform.Chat.Server
      • ServerHostOptions
      • UiMode
    • Uniform.Chat.Server.Management
      • HttpServerAdmin
      • IServerAdmin
      • LocalServerAdmin
      • ServerSnapshot
    • Uniform.Chat.Server.Ui
      • AdminWindow<T>
      • DashboardOptions
      • ReportsWindow
      • RoomsWindow
      • ServerWindow
      • UsersWindow
    • Uniform.Chat.Terminal.Configuration
      • AudioOptions
      • UiOptions
    • Uniform.Chat.Terminal.Ui
      • ClientDialogs
      • DroppedFiles
      • EntryKind
      • MainWindow
      • MessageFormatter
      • TimelineEntry
      • TimelinePane
      • TuiCredentialPrompt
    • Uniform.Chat.Terminal.Ui.Images
      • AsciiArt
      • DecodedImage
      • ImagePreviewStyle
    • Uniform.LiveKit
      • FrameCryptor
      • FrameKind
      • LiveKitMedia
      • LiveKitRoom
      • LiveKitRoomOptions
      • LiveKitRoomService
      • LiveKitSignalClient
      • MatrixRtcAuthorizationClient
    • Uniform.LiveKit.Authorization
      • AuthorizationException
      • DelayedLeaveKeeper
      • FederationOpenIdVerifier
      • HomeserverDelayedEvents
      • IDelayedEvents
      • IOpenIdVerifier
      • IRoomMembership
      • LiveKitAuthorizer
      • LiveKitAuthorizerOptions
    • Uniform.LiveKit.Hosting
      • LiveKitHostingExtensions
      • LiveKitOptions
    • Uniform.LiveKit.Protocol
      • AccessToken
      • AuthorizationError
      • CallMember
      • DelayedLeave
      • LegacySfuRequest
      • MatrixRtcNames
      • OpenIdToken
      • SfuResponse
      • TokenRequest
      • VideoGrant
    • Uniform.Matrix.Audio
      • AlsaAudioDevices
      • AudioDevice
      • AudioDevices
      • IAudioDevices
      • MicrophoneFrames
      • RingTone
      • SpeakerFrames
      • VoiceDecoder
      • VoiceEncoder
      • VoiceFormat
      • VoiceLoopback
      • WasapiAudioDevices
    • Uniform.Matrix.Calls
      • CallEventSender
      • CallService
      • CallState
      • IVideoCamera
      • LegacyCall
      • RtcCall
      • VideoReceiver
      • VoiceCall
      • VoiceMedia
    • Uniform.Matrix.Client
      • ClientServiceExtensions
      • EncryptedMedia
      • MatrixKeyTransport
      • MimeTypes
    • Uniform.Matrix.Client.Configuration
      • AccountPaths
      • MatrixOptions
      • StorageOptions
    • Uniform.Matrix.Client.Formatting
      • EventText
      • HtmlText
      • MarkdownComposer
    • Uniform.Matrix.Client.Migrations
      • AddEventLines
      • InitialCreate
    • Uniform.Matrix.Client.Services
      • AccountRegistration
      • ClientSession
      • ConnectionState
      • ConnectionStatus
      • CryptoService
      • EncryptionUnavailableException
      • ICredentialPrompt
      • MatrixWorker
      • MediaCache
      • NetworkMonitor
      • OutboxSender
      • SyncProcessor
    • Uniform.Matrix.Client.State
      • Room
      • RoomMemberInfo
      • RoomStore
      • SyncChanges
      • TimelineBatch
    • Uniform.Matrix.Client.Storage
      • ClientDbContext
      • ClientStore
      • CryptoAccountRow
      • CryptoDeviceListRow
      • CryptoInboundGroupSessionRow
      • CryptoOlmSessionRow
      • CryptoOutboundGroupSessionRow
      • CryptoValueRow
      • DesignTimeClientDbContextFactory
      • EfCryptoStore
      • OutboxMessage
      • OutboxState
      • RoomLines
      • StoredAccount
      • StoredEvent
      • StoredMedia
    • Uniform.Matrix.Gui.Terminal
      • Dialogs
      • LogWindow
      • SettingsWindow
      • TextWrapper
    • Uniform.Matrix.Hosting
      • AppDirectories
      • AppVersion
      • AppliedConfigurationProvider
      • AppliedConfigurationSource
      • FileLoggerProvider
      • HostingExtensions
      • ISettingsStore
      • LogEntry
      • LogFileInfo
      • LogFiles
      • OptionCatalog
      • OptionChange
      • OptionInfo
      • OptionSection
      • RestartRequiredAttribute
      • SecretAttribute
      • SettingsEditor
      • SettingsStore
    • Uniform.Matrix.Protocol.Client
      • HomeserverDiscovery
      • MatrixClient
      • MatrixSession
      • MediaDownload
      • RegistrationRequirements
      • UserInteractiveAuthException
    • Uniform.Matrix.Protocol.Core
      • AdminAccount
      • AdminAccountsResponse
      • AdminRegistrationToken
      • AdminRegistrationTokensResponse
      • AdminReport
      • AdminReportsResponse
      • AdminRoomInfo
      • AdminRoomShutdown
      • AdminRoomsResponse
      • AuthFlow
      • AuthTypes
      • Base64
      • CallAnswerContent
      • CallCandidate
      • CallCandidatesContent
      • CallContent
      • CallEncryptionKeysContent
      • CallHangupContent
      • CallInviteContent
      • CallKeyMember
      • CallMediaKey
      • CallMemberContent
      • CallNegotiateContent
      • CallRejectContent
      • CallSelectAnswerContent
      • CallSessionDescription
      • CanonicalAliasContent
      • CanonicalJson
      • ClientEvent
      • ContextResponse
      • CreateContent
      • CreateMediaResponse
      • CreateRoomRequest
      • CrossSigningKey
      • CrossSigningUsages
      • DelayedEventResponse
      • Device
      • DeviceKeys
      • DeviceLists
      • DevicesResponse
      • DirectContent
      • Direction
      • EncryptedContent
      • EncryptedFile
      • EncryptionAlgorithms
      • EncryptionContent
      • ErrorCodes
      • ErrorResponse
      • EventFilter
      • EventIdResponse
      • EventList<T>
      • EventTypes
      • ExceptionText
      • Filter
      • FilterIdResponse
      • FullyReadContent
      • IgnoredUserListContent
      • InReplyTo
      • InitialStateEvent
      • InvitedRoom
      • JoinedMembersResponse
      • JoinedRoom
      • JoinedRoomsResponse
      • JsonWebKey
      • KeyBackupAlgorithms
      • KeyBackupData
      • KeyBackupVersion
      • KeysBackup
      • KeysClaimResponse
      • KeysQueryResponse
      • KeysUploadResponse
      • KnockedRoom
      • LeftRoom
      • LoginFlow
      • LoginFlowsResponse
      • LoginResponse
      • MatrixEvent
      • MatrixException
      • MatrixJson
      • MatrixLink
      • MediaInfo
      • MemberContent
      • MembersResponse
      • Memberships
      • Mentions
      • MessageContent
      • MessageFormats
      • MessageTypes
      • MessagesResponse
      • MxcUri
      • NameContent
      • OpenIdTokenResponse
      • PasswordLoginRequest
      • PowerLevelsContent
      • PresenceContent
      • PresenceEvent
      • PresenceStates
      • ProfileResponse
      • PublicRoom
      • PublicRoomsResponse
      • ReactionContent
      • ReceiptContent
      • ReceiptInfo
      • ReceiptTypes
      • RedactionContent
      • RegisterRequest
      • RegisterResponse
      • Relation
      • RelationTypes
      • RoomAliasResponse
      • RoomAliasesResponse
      • RoomAvatarContent
      • RoomEventFilter
      • RoomFilter
      • RoomIdResponse
      • RoomKeyBackup
      • RoomKeyContent
      • RoomMember
      • RoomPresets
      • RoomSummary
      • RoomTags
      • RtcDeclineContent
      • RtcFocusActive
      • RtcNotificationContent
      • RtcTransport
      • RtcTransportsResponse
      • StringOrNumberConverter
      • StrippedStateEvent
      • SyncResponse
      • SyncRooms
      • TagContent
      • TagInfo
      • TermsPolicy
      • Timeline
      • ToDeviceEvent
      • TopicContent
      • TurnServerResponse
      • TypingContent
      • UnreadNotificationCounts
      • UnsignedData
      • UploadResponse
      • UserDirectoryEntry
      • UserDirectoryResponse
      • UserId
      • UserIdentifier
      • UserInteractiveAuthResponse
      • VerificationRequestContent
      • VersionsResponse
      • WellKnownClient
      • WellKnownServer
      • WhoAmIResponse
      • WhoisConnection
      • WhoisDevice
      • WhoisResponse
      • WhoisSession
    • Uniform.Matrix.Protocol.Crypto
      • AccountRecord
      • AesCtr
      • AttachmentCrypto
      • AttachmentKeys
      • DecryptedToDeviceEvent
      • DecryptionStatus
      • DeviceInfo
      • DeviceListRecord
      • DeviceTrust
      • Ed25519
      • EncryptedAttachments
      • EncryptedSecret
      • EstablishedSas
      • ICryptoStore
      • IKeyTransport
      • IdentityKeys
      • InMemoryCryptoStore
      • InboundGroupSessionRecord
      • MegolmInboundSession
      • MegolmOutboundSession
      • MegolmPlaintext
      • OlmAccount
      • OlmException
      • OlmMachine
      • OlmMessage
      • OlmSession
      • OlmSessionRecord
      • OutboundGroupSessionRecord
      • PassphraseInfo
      • PkEncryption
      • PkMessage
      • RecoveryResult
      • RoomEventDecryption
      • Sas
      • SasEmoji
      • SecretNames
      • SecretStorage
      • SecretStorageCrypto
      • SecretStorageKeyDescription
      • SecurityStatus
      • UserIdentity
      • Verification
      • VerificationState
    • Uniform.Matrix.Protocol.Server
      • AuthEventTypes
      • AuthEvents
      • AuthRules
      • DnsSrv
      • EventFormat
      • FederationAuth
      • PowerLevels
      • PushContext
      • PushDecision
      • PushRules
      • RedactionRules
      • RoomVersion
      • ServerAcl
      • ServerNames
      • SrvRecord
      • StateResolution
      • XMatrixAuthorization
    • Uniform.Matrix.Server
      • ServerServiceExtensions
      • ServerStatus
    • Uniform.Matrix.Server.Accounts
      • AccountDataService
      • AccountDeactivation
      • AccountService
      • AdminDevice
      • AdminRoom
      • AdminService
      • AdminUser
      • AdminUserChange
      • AuthenticationRequiredException
      • LocalUserIds
      • OpenIdTokens
      • Optional<T>
      • PresenceService
      • ProfileService
      • PushNotifier
      • PushRuleService
      • PusherService
      • RegistrationToken
      • RegistrationTokens
      • Requester
      • RoomShutdown
      • ServerNotices
      • UserInteractiveAuth
    • Uniform.Matrix.Server.Configuration
      • CallOptions
      • FederationOptions
      • MediaOptions
      • PushOptions
      • RateLimitOptions
      • RegistrationMode
      • ServerOptions
      • ServerStorageOptions
      • TlsOptions
      • UrlPreviewOptions
    • Uniform.Matrix.Server.Encryption
      • DeviceKeyService
      • KeyBackupService
      • ToDeviceService
    • Uniform.Matrix.Server.Endpoints
      • AccountDataEndpoints
      • AccountEndpoints
      • ActivityEndpoints
      • AdminEndpoints
      • CallEndpoints
      • DeviceEndpoints
      • DirectoryEndpoints
      • DiscoveryEndpoints
      • FederationEndpoints
      • KeyBackupEndpoints
      • KeyEndpoints
      • ManagementEndpoints
      • MediaEndpoints
      • ProfileEndpoints
      • PushRuleEndpoints
      • PusherEndpoints
      • RoomEndpoints
      • SyncEndpoints
    • Uniform.Matrix.Server.Federation
      • FederationClient
      • FederationEndpoint
      • FederationQueue
      • FederationSender
      • RemoteActivity
      • RemoteDevices
      • RemoteEvents
      • RemoteInvites
      • RemoteJoins
      • RemoteServerKeys
      • RoomAcls
      • RoomHistory
      • ServerAddress
      • ServerAuthentication
      • ServerResolver
      • SrvLookup
    • Uniform.Matrix.Server.Http
      • AccessTokens
      • AdminSocket
      • LegacyPaths
      • MatrixErrorException
      • MatrixHttp
      • PublicAddresses
      • RateLimits
      • TlsCertificate
      • TlsCertificateException
    • Uniform.Matrix.Server.Keys
      • ServerKeys
    • Uniform.Matrix.Server.Media
      • MediaService
      • MediaService.StoredFile
      • Thumbnailer
      • UrlPreviewService
    • Uniform.Matrix.Server.Rooms
      • DelayedEvents
      • DirectoryService
      • EventDraft
      • EventSender
      • ReceiptService
      • Report
      • ReportService
      • RoomService
      • StateCache
      • TypingService
    • Uniform.Matrix.Server.Storage
      • AccessTokenRow
      • AccountDataRow
      • CounterRow
      • CrossSigningKeyRow
      • CurrentStateRow
      • DataDirectoryInUseException
      • DataDirectoryLock
      • DatabaseMigrator
      • DelayedEventRow
      • DesignTimeServerDbContextFactory
      • DeviceKeysRow
      • DeviceListChangeRow
      • DeviceRow
      • EventEdgeRow
      • EventRelationRow
      • EventRow
      • FallbackKeyRow
      • FederationOutboxRow
      • FederationProgressRow
      • FilterRow
      • ForgottenRoomRow
      • ForwardExtremityRow
      • KeyBackupVersionRow
      • KeySignatureRow
      • MediaRow
      • OneTimeKeyRow
      • ProfileRow
      • PusherRow
      • ReceiptRow
      • RegistrationTokenRow
      • RemoteInviteRow
      • RemoteMediaRow
      • ReportRow
      • RoomAliasRow
      • RoomKeyRow
      • RoomRow
      • ServerDbContext
      • ServerKeyResponseRow
      • StateGroupEntryRow
      • StateGroupRow
      • ThumbnailRow
      • ToDeviceRow
      • TransactionRow
      • UserRow
    • Uniform.Matrix.Server.Storage.Migrations
      • AddAdminControls
      • AddDelayedEvents
      • AddEventStatusRelationsAndReports
      • AddFederationOutbox
      • AddFederationProgress
      • AddPushers
      • AddRemoteInvites
      • AddRemoteMedia
      • AddServerKeyResponses
      • InitialCreate
      • ScopeTransactionsToRooms
    • Uniform.Matrix.Server.Sync
      • ServerStream
      • SlidingSyncService
      • SyncFilter
      • SyncService
    • Uniform.Matrix.Video
      • IVideoDecoder
      • VideoFrame
    • Uniform.Matrix.Video.Vp8
      • Vp8Decoder
      • Vp8Encoder
    • Uniform.Matrix.WebRtc
      • AudioPeerConnection
      • IMediaConnection
      • PeerConnectionOptions
      • PeerConnectionState
    • Uniform.Matrix.WebRtc.Dtls
      • DtlsCertificate
      • DtlsSrtp
    • Uniform.Matrix.WebRtc.Ice
      • IceAgent
      • IceCandidate
      • IceCandidateType
      • IceOptions
      • IceServer
      • IceState
    • Uniform.Matrix.WebRtc.Rtp
      • BandwidthEstimator
      • JitterBuffer
      • ReceiverStatistics
      • ReportBlock
      • Rtcp
      • RtpPacket
      • Vp8Depacketizer
      • Vp8EncodedFrame
      • Vp8Packetizer
    • Uniform.Matrix.WebRtc.Sdp
      • AudioSdp
      • LocalAudio
      • MediaDescription
      • RemoteAudio
      • RemoteTransport
      • RemoteVideo
      • SessionDescription
    • Uniform.Matrix.WebRtc.Srtp
      • SrtpSession
    • Uniform.Stun
      • DatagramSender
      • StunClient
      • StunDiscovery
      • TurnClient
    • Uniform.Stun.Hosting
      • PemCertificate
      • TurnHostingExtensions
      • TurnOptions
      • TurnServerHost
    • Uniform.Stun.Protocol
      • ChannelData
      • StunAddress
      • StunAttribute
      • StunAttributeTypes
      • StunClass
      • StunErrorCodes
      • StunMessage
      • StunMethod
      • TurnCredentials
    • Uniform.Turn
      • CombinedAuthenticator
      • ITurnAuthenticator
      • IpRange
      • SharedSecretAuthenticator
      • StaticUserAuthenticator
      • TurnServer
      • TurnServerOptions
      • TurnServerStatus
      • TurnTransport

    Class EventSender

    Builds local events into the room graph: previous events, auth events, hash, signature, ID, authorization, state and storage.

    Inheritance
    object
    EventSender
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: Uniform.Matrix.Server.Rooms
    Assembly: Uniform.Matrix.Server.dll
    Syntax
    public sealed class EventSender
    Remarks

    Events are written through the ServerStream, one at a time, so stream positions are committed in order.

    • EventSender.cs: local events, joins and leaves of other servers' users, and rooms joined elsewhere.
    • EventSender.Remote.cs: events other servers send, checked against their auth events, the state before them and the current state, with forks merged by StateResolution.

    Constructors

    | Edit this page View Source

    EventSender(IDbContextFactory<ServerDbContext>, ServerKeys, IOptions<ServerOptions>, TimeProvider, ServerStream)

    Create the sender.

    Declaration
    public EventSender(IDbContextFactory<ServerDbContext> contexts, ServerKeys keys, IOptions<ServerOptions> options, TimeProvider time, ServerStream stream)
    Parameters
    Type Name Description
    IDbContextFactory<ServerDbContext> contexts
    ServerKeys keys
    IOptions<ServerOptions> options
    TimeProvider time
    ServerStream stream

    Properties

    | Edit this page View Source

    OwnKeys

    Return this server's public keys by key ID, for AcceptEventAsync(JsonObject, IReadOnlyDictionary<string, string>, CancellationToken, IReadOnlyDictionary<(string Type, string StateKey), string>?) of its own events.

    Declaration
    public IReadOnlyDictionary<string, string> OwnKeys { get; }
    Property Value
    Type Description
    IReadOnlyDictionary<string, string>

    Methods

    | Edit this page View Source

    AcceptEventAsync(JsonObject, IReadOnlyDictionary<string, string>, CancellationToken, IReadOnlyDictionary<(string Type, string StateKey), string>?)

    Accept an event another server sent; return its ID, if known, and null when stored or already here, else why it was rejected.

    Declaration
    public Task<(string? EventId, string? Error)> AcceptEventAsync(JsonObject pdu, IReadOnlyDictionary<string, string> senderKeys, CancellationToken cancellationToken, IReadOnlyDictionary<(string Type, string StateKey), string>? reportedStateBefore = null)
    Parameters
    Type Name Description
    JsonObject pdu

    The event.

    IReadOnlyDictionary<string, string> senderKeys

    Public keys of the sender's server by key ID.

    CancellationToken cancellationToken

    Cancellation token.

    IReadOnlyDictionary<(string Type, string StateKey), string> reportedStateBefore

    State before the event as its server reported it, for previous events not here; null when all are here.

    Returns
    Type Description
    Task<(string EventId, string Error)>
    Remarks

    As the spec's checks on receipt: the event must be allowed by its own auth events, which must be here, and by the state before it, merged from its previous events; otherwise it is rejected and not stored. When the room's current state no longer allows it, as when its sender was banned meanwhile, it is stored but soft-failed.

    | Edit this page View Source

    AcceptMembershipAsync(JsonObject, string, string, string, IReadOnlyDictionary<string, string>, CancellationToken)

    Accept a membership event that another server built from MakeMembershipAsync(string, string, string, CancellationToken) and signed; for a join return the state before it and its auth chain, as send_join answers, for a leave nothing.

    Declaration
    public Task<(List<JsonObject> State, List<JsonObject> AuthChain)> AcceptMembershipAsync(JsonObject pdu, string membership, string eventId, string origin, IReadOnlyDictionary<string, string> originKeys, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    JsonObject pdu

    The signed event.

    string membership

    join or leave, which the event must be.

    string eventId

    Event ID from the URL, which must match the event.

    string origin

    Server that sent it, which must be the joining user's.

    IReadOnlyDictionary<string, string> originKeys

    Public keys of origin by key ID.

    CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    Task<(List<JsonObject> State, List<JsonObject> AuthChain)>
    | Edit this page View Source

    CreateHashedRoomAsync(RoomVersion, string, JsonObject, bool, CancellationToken)

    Create a room whose ID is its create event's hash, as from room version 12: build and sign the create event first, then store the room under the ID it gives.

    Declaration
    public Task<string> CreateHashedRoomAsync(RoomVersion version, string creator, JsonObject content, bool published, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    RoomVersion version

    Room version with RoomIdIsCreateHash.

    string creator

    Local user creating the room.

    JsonObject content

    Create event content, with room_version.

    bool published

    Whether the room is listed in the public directory.

    CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    Task<string>
    | Edit this page View Source

    FindUnknownAsync(IReadOnlyCollection<string>, CancellationToken)

    Return the IDs among eventIds that are not stored here, soft-failed ones counting as stored.

    Declaration
    public Task<IReadOnlyList<string>> FindUnknownAsync(IReadOnlyCollection<string> eventIds, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    IReadOnlyCollection<string> eventIds
    CancellationToken cancellationToken
    Returns
    Type Description
    Task<IReadOnlyList<string>>
    | Edit this page View Source

    InviteRoomStateAsync(string, string, CancellationToken)

    Return the state an invitee sees before joining, as stripped events: create, join rules, name, avatar, alias, encryption, and the inviter's membership.

    Declaration
    public Task<JsonArray> InviteRoomStateAsync(string roomId, string inviter, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    string roomId
    string inviter
    CancellationToken cancellationToken
    Returns
    Type Description
    Task<JsonArray>
    | Edit this page View Source

    MakeMembershipAsync(string, string, string, CancellationToken)

    Return an unsigned membership event of userId for another server to sign, as make_join and make_leave answer, with the room version.

    Declaration
    public Task<(JsonObject Template, RoomVersion Version)> MakeMembershipAsync(string roomId, string userId, string membership, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    string roomId

    Room here.

    string userId

    User of the asking server.

    string membership

    join, or leave to reject an invite or leave.

    CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    Task<(JsonObject Template, RoomVersion Version)>
    | Edit this page View Source

    SendAsync(EventDraft, CancellationToken)

    Send an event; return its ID. Throws M_FORBIDDEN when the auth rules reject it, and return the earlier event for a retried transaction.

    Declaration
    public Task<string> SendAsync(EventDraft draft, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    EventDraft draft
    CancellationToken cancellationToken
    Returns
    Type Description
    Task<string>
    | Edit this page View Source

    SignAsync(EventDraft, CancellationToken)

    Build, hash and sign a local event and check it against the room's rules without storing it, for events another server must sign too, such as invites of its users; store it with AcceptEventAsync(JsonObject, IReadOnlyDictionary<string, string>, CancellationToken, IReadOnlyDictionary<(string Type, string StateKey), string>?).

    Declaration
    public Task<(JsonObject Pdu, string EventId, RoomVersion Version)> SignAsync(EventDraft draft, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    EventDraft draft
    CancellationToken cancellationToken
    Returns
    Type Description
    Task<(JsonObject Pdu, string EventId, RoomVersion Version)>
    | Edit this page View Source

    StoreFetchedAsync(string, IReadOnlyDictionary<string, JsonObject>, CancellationToken)

    Store events of a room fetched to fill a gap, e.g. the state before an event and its auth chain, as earlier history; those not allowed by their own auth events are left out. Return the IDs stored.

    Declaration
    public Task<IReadOnlySet<string>> StoreFetchedAsync(string roomId, IReadOnlyDictionary<string, JsonObject> events, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    string roomId

    Room, which must be here.

    IReadOnlyDictionary<string, JsonObject> events

    Events by ID, with hashes and signatures already checked.

    CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    Task<IReadOnlySet<string>>
    | Edit this page View Source

    StoreJoinedRoomAsync(RoomVersion, JsonObject, string, IReadOnlyDictionary<string, JsonObject>, IReadOnlyCollection<string>, CancellationToken)

    Store a room joined on another server: its state and auth chain as they were before the join, then the join as the room's first own event.

    Declaration
    public Task StoreJoinedRoomAsync(RoomVersion version, JsonObject join, string joinId, IReadOnlyDictionary<string, JsonObject> events, IReadOnlyCollection<string> stateIds, CancellationToken cancellationToken)
    Parameters
    Type Name Description
    RoomVersion version

    Room version.

    JsonObject join

    The signed join, already accepted by the resident server.

    string joinId

    Its event ID.

    IReadOnlyDictionary<string, JsonObject> events

    State and auth chain events by ID, already checked.

    IReadOnlyCollection<string> stateIds

    IDs of the state events before the join.

    CancellationToken cancellationToken

    Cancellation token.

    Returns
    Type Description
    Task
    • Edit this page
    • View Source
    In this article
    Back to top Uniform Chat