libQuotient
A Qt library for building matrix clients
|
Namespaces | |
EventContent | |
EventStatus | |
FileMetadataMap | |
Literals | |
LoginFlows | |
Predefined login flows. | |
Classes | |
class | AccountRegistry |
struct | ThirdPartyLocation |
struct | JsonObjectConverter< ThirdPartyLocation > |
struct | FieldType |
Definition of valid values for a field. More... | |
struct | JsonObjectConverter< FieldType > |
struct | ProtocolInstance |
struct | JsonObjectConverter< ProtocolInstance > |
struct | ThirdPartyProtocol |
struct | JsonObjectConverter< ThirdPartyProtocol > |
struct | ThirdPartyUser |
struct | JsonObjectConverter< ThirdPartyUser > |
class | Avatar |
class | Connection |
class | ConnectionData |
struct | JsonObjectConverter |
struct | JsonObjectUnpacker |
struct | JsonConverter |
The switchboard for extra conversion algorithms behind from/toJson. More... | |
struct | JsonConverter< QUrl > |
struct | JsonConverter< QVariant > |
struct | JsonConverter< std::variant< QString, T > > |
struct | JsonConverter< std::optional< T > > |
struct | JsonArrayConverter |
struct | JsonConverter< std::vector< T > > |
struct | JsonConverter< std::array< T, N > > |
struct | JsonConverter< QList< T > > |
struct | JsonConverter< QStringList > |
struct | JsonObjectConverter< QSet< QString > > |
struct | HashMapFromJson |
struct | JsonObjectConverter< std::unordered_map< QString, T, HashT > > |
struct | JsonObjectConverter< QHash< QString, T > > |
class | SetAccountDataJob |
Set some account data for the user. More... | |
class | GetAccountDataJob |
Get some account data for the user. More... | |
class | SetAccountDataPerRoomJob |
Set some account data for the user that is specific to a room. More... | |
class | GetAccountDataPerRoomJob |
Get some account data for the user that is specific to a room. More... | |
class | GetWhoIsJob |
Gets information about a particular user. More... | |
struct | JsonObjectConverter< GetWhoIsJob::ConnectionInfo > |
struct | JsonObjectConverter< GetWhoIsJob::SessionInfo > |
struct | JsonObjectConverter< GetWhoIsJob::DeviceInfo > |
class | GetAccount3PIDsJob |
Gets a list of a user's third-party identifiers. More... | |
struct | JsonObjectConverter< GetAccount3PIDsJob::ThirdPartyIdentifier > |
class | Post3PIDsJob |
Adds contact information to the user's account. More... | |
struct | JsonObjectConverter< Post3PIDsJob::ThreePidCredentials > |
class | Add3PIDJob |
Adds contact information to the user's account. More... | |
class | Bind3PIDJob |
Binds a 3PID to the user's account through an Identity Service. More... | |
class | Delete3pidFromAccountJob |
Deletes a third-party identifier from the user's account. More... | |
class | Unbind3pidFromAccountJob |
Removes a user's third-party identifier from an identity server. More... | |
class | RequestTokenTo3PIDEmailJob |
Begins the validation process for an email address for association with the user's account. More... | |
class | RequestTokenTo3PIDMSISDNJob |
Begins the validation process for a phone number for association with the user's account. More... | |
class | UpdateAppserviceRoomDirectoryVisibilityJob |
Updates a room's visibility in the application service's room directory. More... | |
class | GetContentAuthedJob |
Download content from the content repository. More... | |
class | GetContentOverrideNameAuthedJob |
Download content from the content repository overriding the file name. More... | |
class | GetContentThumbnailAuthedJob |
Download a thumbnail of content from the content repository. More... | |
class | GetUrlPreviewAuthedJob |
Get information about a URL for a client. More... | |
class | GetConfigAuthedJob |
Get the configuration for the content repository. More... | |
class | BanJob |
Ban a user in the room. More... | |
class | UnbanJob |
Unban a user from the room. More... | |
struct | BooleanCapability |
struct | JsonObjectConverter< BooleanCapability > |
class | GetCapabilitiesJob |
Gets information about the server's capabilities. More... | |
struct | JsonObjectConverter< GetCapabilitiesJob::RoomVersionsCapability > |
struct | JsonObjectConverter< GetCapabilitiesJob::Capabilities > |
class | UploadContentJob |
Upload some content to the content repository. More... | |
class | UploadContentToMXCJob |
Upload content to an mxc:// URI that was created earlier. More... | |
class | CreateContentJob |
Create a new mxc:// URI without uploading the content. More... | |
class | GetContentJob |
Download content from the content repository. More... | |
class | GetContentOverrideNameJob |
Download content from the content repository overriding the file name. More... | |
class | GetContentThumbnailJob |
Download a thumbnail of content from the content repository. More... | |
class | GetUrlPreviewJob |
Get information about a URL for a client. More... | |
class | GetConfigJob |
Get the configuration for the content repository. More... | |
class | CreateRoomJob |
Create a new room. More... | |
struct | JsonObjectConverter< CreateRoomJob::Invite3pid > |
struct | JsonObjectConverter< CreateRoomJob::StateEvent > |
class | UploadCrossSigningKeysJob |
Upload cross-signing keys. More... | |
class | UploadCrossSigningSignaturesJob |
Upload cross-signing signatures. More... | |
struct | AuthenticationData |
Used by clients to submit authentication information to the interactive-authentication API. More... | |
struct | JsonObjectConverter< AuthenticationData > |
struct | Device |
A client device. More... | |
struct | JsonObjectConverter< Device > |
struct | CrossSigningKey |
Cross signing key. More... | |
struct | JsonObjectConverter< CrossSigningKey > |
struct | DeviceKeys |
Device identity keys. More... | |
struct | JsonObjectConverter< DeviceKeys > |
struct | EventFilter |
struct | JsonObjectConverter< EventFilter > |
struct | KeyBackupData |
The key data. More... | |
struct | JsonObjectConverter< KeyBackupData > |
struct | OpenIdCredentials |
struct | JsonObjectConverter< OpenIdCredentials > |
struct | PublicRoomsChunk |
struct | JsonObjectConverter< PublicRoomsChunk > |
struct | PushCondition |
struct | JsonObjectConverter< PushCondition > |
struct | PushRule |
struct | JsonObjectConverter< PushRule > |
struct | PushRuleset |
struct | JsonObjectConverter< PushRuleset > |
struct | EmailValidationData |
struct | JsonObjectConverter< EmailValidationData > |
struct | MsisdnValidationData |
struct | JsonObjectConverter< MsisdnValidationData > |
struct | RequestTokenResponse |
struct | JsonObjectConverter< RequestTokenResponse > |
struct | RoomEventFilter |
struct | JsonObjectConverter< RoomEventFilter > |
struct | RoomKeyBackup |
The backed up keys for a room. More... | |
struct | JsonObjectConverter< RoomKeyBackup > |
struct | RoomFilter |
Filters to be applied to room data. More... | |
struct | JsonObjectConverter< RoomFilter > |
struct | Filter |
struct | JsonObjectConverter< Filter > |
struct | Tag |
struct | JsonObjectConverter< Tag > |
struct | ThirdPartySigned |
struct | JsonObjectConverter< ThirdPartySigned > |
struct | UserIdentifier |
Identification information for a user. More... | |
struct | JsonObjectConverter< UserIdentifier > |
struct | DiscoveryInformation |
struct | JsonObjectConverter< DiscoveryInformation > |
struct | HomeserverInformation |
Used by clients to discover homeserver information. More... | |
struct | JsonObjectConverter< HomeserverInformation > |
struct | IdentityServerInformation |
Used by clients to discover identity server information. More... | |
struct | JsonObjectConverter< IdentityServerInformation > |
class | GetDevicesJob |
List registered devices for the current user. More... | |
class | GetDeviceJob |
Get a single device. More... | |
class | UpdateDeviceJob |
Update a device. More... | |
class | DeleteDeviceJob |
Delete a device. More... | |
class | DeleteDevicesJob |
Bulk deletion of devices. More... | |
class | SetRoomAliasJob |
Create a new mapping from room alias to room ID. More... | |
class | GetRoomIdByAliasJob |
Get the room ID corresponding to this room alias. More... | |
class | DeleteRoomAliasJob |
Remove a mapping of room alias to room ID. More... | |
class | GetLocalAliasesJob |
Get a list of local aliases on a given room. More... | |
class | GetEventContextJob |
Get events and state around the specified event. More... | |
class | DefineFilterJob |
Upload a new filter. More... | |
class | GetFilterJob |
Download a filter. More... | |
class | InviteUserJob |
Invite a user to participate in a particular room. More... | |
class | JoinRoomByIdJob |
Start the requesting user participating in a particular room. More... | |
class | JoinRoomJob |
Start the requesting user participating in a particular room. More... | |
class | PostRoomKeysVersionJob |
Create a new backup. More... | |
class | GetRoomKeysVersionCurrentJob |
Get information about the latest backup version. More... | |
class | GetRoomKeysVersionJob |
Get information about an existing backup. More... | |
class | PutRoomKeysVersionJob |
Update information about an existing backup. More... | |
class | DeleteRoomKeysVersionJob |
Delete an existing key backup. More... | |
class | PutRoomKeyBySessionIdJob |
Store a key in the backup. More... | |
class | GetRoomKeyBySessionIdJob |
Retrieve a key from the backup. More... | |
class | DeleteRoomKeyBySessionIdJob |
Delete a key from the backup. More... | |
class | PutRoomKeysByRoomIdJob |
Store several keys in the backup for a given room. More... | |
class | GetRoomKeysByRoomIdJob |
Retrieve the keys from the backup for a given room. More... | |
class | DeleteRoomKeysByRoomIdJob |
Delete the keys from the backup for a given room. More... | |
class | PutRoomKeysJob |
Store several keys in the backup. More... | |
class | GetRoomKeysJob |
Retrieve the keys from the backup. More... | |
class | DeleteRoomKeysJob |
Delete the keys from the backup. More... | |
class | UploadKeysJob |
Upload end-to-end encryption keys. More... | |
class | QueryKeysJob |
Download device identity keys. More... | |
struct | JsonObjectConverter< QueryKeysJob::UnsignedDeviceInfo > |
struct | JsonObjectConverter< QueryKeysJob::DeviceInformation > |
class | ClaimKeysJob |
Claim one-time encryption keys. More... | |
class | GetKeysChangesJob |
Query users with recent device key updates. More... | |
class | KickJob |
Kick a user from the room. More... | |
class | KnockRoomJob |
Knock on a room, requesting permission to join. More... | |
class | LeaveRoomJob |
Stop the requesting user participating in a particular room. More... | |
class | ForgetRoomJob |
Stop the requesting user remembering about a particular room. More... | |
class | GetJoinedRoomsJob |
Lists the user's current rooms. More... | |
class | GetRoomVisibilityOnDirectoryJob |
Gets the visibility of a room in the directory. More... | |
class | SetRoomVisibilityOnDirectoryJob |
Sets the visibility of a room in the room directory. More... | |
class | GetPublicRoomsJob |
Lists the public rooms on the server. More... | |
class | QueryPublicRoomsJob |
Lists the public rooms on the server with optional filter. More... | |
struct | JsonObjectConverter< QueryPublicRoomsJob::Filter > |
class | GetLoginFlowsJob |
Get the supported login types to authenticate users. More... | |
struct | JsonObjectConverter< GetLoginFlowsJob::LoginFlow > |
class | LoginJob |
Authenticates the user. More... | |
class | GenerateLoginTokenJob |
Optional endpoint to generate a single-use, time-limited, m.login.token token. More... | |
class | LogoutJob |
Invalidates a user access token. More... | |
class | LogoutAllJob |
Invalidates all access tokens for a user. More... | |
class | GetRoomEventsJob |
Get a list of events for this room. More... | |
class | GetNotificationsJob |
Gets a list of events that the user has been notified about. More... | |
struct | JsonObjectConverter< GetNotificationsJob::Notification > |
class | RequestOpenIdTokenJob |
Get an OpenID token object to verify the requester's identity. More... | |
class | PeekEventsJob |
Listen on the event stream of a particular room. More... | |
class | SetPresenceJob |
Update this user's presence state. More... | |
class | GetPresenceJob |
Get this user's presence state. More... | |
class | SetDisplayNameJob |
Set the user's display name. More... | |
class | GetDisplayNameJob |
Get the user's display name. More... | |
class | SetAvatarUrlJob |
Set the user's avatar URL. More... | |
class | GetAvatarUrlJob |
Get the user's avatar URL. More... | |
class | GetUserProfileJob |
Get this user's profile information. More... | |
class | GetPushersJob |
Gets the current pushers for the authenticated user. More... | |
struct | JsonObjectConverter< GetPushersJob::PusherData > |
struct | JsonObjectConverter< GetPushersJob::Pusher > |
class | PostPusherJob |
Modify a pusher for this user on the homeserver. More... | |
struct | JsonObjectConverter< PostPusherJob::PusherData > |
class | GetPushRulesJob |
Retrieve all push rulesets. More... | |
class | GetPushRulesGlobalJob |
Retrieve all push rules. More... | |
class | GetPushRuleJob |
Retrieve a push rule. More... | |
class | DeletePushRuleJob |
Delete a push rule. More... | |
class | SetPushRuleJob |
Add or change a push rule. More... | |
class | IsPushRuleEnabledJob |
Get whether a push rule is enabled. More... | |
class | SetPushRuleEnabledJob |
Enable or disable a push rule. More... | |
class | GetPushRuleActionsJob |
The actions for a push rule. More... | |
class | SetPushRuleActionsJob |
Set the actions for a push rule. More... | |
class | SetReadMarkerJob |
Set the position of the read marker for a room. More... | |
class | PostReceiptJob |
Send a receipt for the given event ID. More... | |
class | RedactEventJob |
Strips all non-integrity-critical information out of an event. More... | |
class | RefreshJob |
Refresh an access token. More... | |
class | RegisterJob |
Register for an account on this homeserver. More... | |
class | RequestTokenToRegisterEmailJob |
Begins the validation process for an email to be used during registration. More... | |
class | RequestTokenToRegisterMSISDNJob |
Requests a validation token be sent to the given phone number for the purpose of registering an account. More... | |
class | ChangePasswordJob |
Changes a user's password. More... | |
class | RequestTokenToResetPasswordEmailJob |
Requests a validation token be sent to the given email address for the purpose of resetting a user's password. More... | |
class | RequestTokenToResetPasswordMSISDNJob |
Requests a validation token be sent to the given phone number for the purpose of resetting a user's password. More... | |
class | DeactivateAccountJob |
Deactivate a user's account. More... | |
class | CheckUsernameAvailabilityJob |
Checks to see if a username is available on the server. More... | |
class | RegistrationTokenValidityJob |
Query if a given registration token is still valid. More... | |
class | GetRelatingEventsJob |
Get the child events for a given parent event. More... | |
class | GetRelatingEventsWithRelTypeJob |
Get the child events for a given parent event, with a given relType . More... | |
class | GetRelatingEventsWithRelTypeAndEventTypeJob |
Get the child events for a given parent event, with a given relType and eventType . More... | |
class | ReportContentJob |
Report an event in a joined room as inappropriate. More... | |
class | GetEventByTimestampJob |
Get the closest event ID to the given timestamp. More... | |
class | SendMessageJob |
Send a message event to the given room. More... | |
class | SetRoomStateWithKeyJob |
Send a state event to the given room. More... | |
class | UpgradeRoomJob |
Upgrades a room to a new room version. More... | |
class | GetOneRoomEventJob |
Get a single event by event ID. More... | |
class | GetRoomStateWithKeyJob |
Get the state identified by the type and key. More... | |
class | GetRoomStateJob |
Get all state events in the current state of a room. More... | |
class | GetMembersByRoomJob |
Get the m.room.member events for the room. More... | |
class | GetJoinedMembersByRoomJob |
Gets the list of currently joined users and their profile data. More... | |
struct | JsonObjectConverter< GetJoinedMembersByRoomJob::RoomMember > |
class | SearchJob |
Perform a server-side search. More... | |
struct | JsonObjectConverter< SearchJob::IncludeEventContext > |
struct | JsonObjectConverter< SearchJob::Group > |
struct | JsonObjectConverter< SearchJob::Groupings > |
struct | JsonObjectConverter< SearchJob::RoomEventsCriteria > |
struct | JsonObjectConverter< SearchJob::Categories > |
struct | JsonObjectConverter< SearchJob::UserProfile > |
struct | JsonObjectConverter< SearchJob::EventContext > |
struct | JsonObjectConverter< SearchJob::Result > |
struct | JsonObjectConverter< SearchJob::GroupValue > |
struct | JsonObjectConverter< SearchJob::ResultRoomEvents > |
struct | JsonObjectConverter< SearchJob::ResultCategories > |
class | GetSpaceHierarchyJob |
Retrieve a portion of a space tree. More... | |
struct | JsonObjectConverter< GetSpaceHierarchyJob::SpaceHierarchyRoomsChunk > |
class | RedirectToSSOJob |
Redirect the user's browser to the SSO interface. More... | |
class | RedirectToIdPJob |
Redirect the user's browser to the SSO interface for an IdP. More... | |
class | GetWellknownSupportJob |
Gets homeserver contacts and support details. More... | |
struct | JsonObjectConverter< GetWellknownSupportJob::Contact > |
class | GetRoomTagsJob |
List the tags for a room. More... | |
class | SetRoomTagJob |
Add a tag to a room. More... | |
class | DeleteRoomTagJob |
Remove a tag from the room. More... | |
class | GetProtocolsJob |
Retrieve metadata about all protocols that a homeserver supports. More... | |
class | GetProtocolMetadataJob |
Retrieve metadata about a specific protocol that the homeserver supports. More... | |
class | QueryLocationByProtocolJob |
Retrieve Matrix-side portals rooms leading to a third-party location. More... | |
class | QueryUserByProtocolJob |
Retrieve the Matrix User ID of a corresponding third-party user. More... | |
class | QueryLocationByAliasJob |
Reverse-lookup third-party locations given a Matrix room alias. More... | |
class | QueryUserByIDJob |
Reverse-lookup third-party users given a Matrix User ID. More... | |
class | InviteBy3PIDJob |
Invite a user to participate in a particular room. More... | |
class | GetThreadRootsJob |
Fetches a list of the threads in a room. More... | |
class | SendToDeviceJob |
Send an event to a given set of devices. More... | |
class | SetTypingJob |
Informs the server that the user has started or stopped typing. More... | |
class | SearchUserDirectoryJob |
Searches the user directory. More... | |
struct | JsonObjectConverter< SearchUserDirectoryJob::User > |
class | GetVersionsJob |
Gets the versions of the specification supported by the server. More... | |
class | GetTurnServerJob |
Obtain TURN server credentials. More... | |
class | GetWellknownJob |
Gets Matrix server discovery information about the domain. More... | |
class | GetTokenOwnerJob |
Gets information about the owner of an access token. More... | |
class | Database |
struct | HkdfKeys |
struct | Curve25519Encrypted |
class | FixedBufferBase |
Non-template base for owning byte span classes. More... | |
class | FixedBuffer |
class | PicklingKey |
struct | IdentityKeys |
struct | UnsignedOneTimeKeys |
Struct representing the one-time keys. More... | |
class | SignedOneTimeKey |
class | QOlmAccount |
class | QOlmInboundGroupSession |
class | QOlmMessage |
A wrapper around an olm encrypted message. More... | |
class | QOlmOutboundGroupSession |
class | QOlmSession |
Either an outbound or inbound session for secure communication. More... | |
class | QOlmUtility |
class | SSSSHandler |
class | EventItemBase |
class | TimelineItem |
class | PendingEventItem |
class | CallEvent |
class | EventTemplate< EventT, CallEvent > |
class | EventTemplate< EventT, CallEvent, ContentT > |
class | CallInviteEvent |
class | CallHangupEvent |
class | DirectChatEvent |
class | EncryptedEvent |
class | DummyEvent |
class | EncryptionEventContent |
class | EncryptionEvent |
class | AbstractEventMetaType |
The base class for event metatypes. More... | |
class | EventMetaType |
A family of event meta-types to load and match events. More... | |
struct | JsonConverter< event_ptr_tt< EventT > > |
class | Event |
class | EventTemplate |
A template base class to derive your event type from. More... | |
struct | EventRelation |
struct | JsonObjectConverter< EventRelation > |
struct | JWK |
struct | EncryptedFileMetadata |
struct | JsonObjectConverter< EncryptedFileMetadata > |
struct | JsonObjectConverter< JWK > |
class | KeyVerificationEvent |
class | KeyVerificationRequestEvent |
Requests a key verification with another user's devices. More... | |
class | KeyVerificationReadyEvent |
class | KeyVerificationStartEvent |
Begins a key verification process. More... | |
class | KeyVerificationAcceptEvent |
Accepts a previously sent m.key.verification.start message. More... | |
class | KeyVerificationCancelEvent |
class | KeyVerificationKeyEvent |
Sends the ephemeral public key for a device to the partner device. More... | |
class | KeyVerificationMacEvent |
Sends the MAC of a device's key to the partner device. More... | |
class | KeyVerificationDoneEvent |
class | ReactionEvent |
struct | UserTimestamp |
struct | ReceiptsForEvent |
class | ReceiptEvent |
class | RedactionEvent |
class | RoomAvatarEvent |
class | RoomCanonicalAliasEvent |
class | RoomCreateEvent |
class | RoomEvent |
class | RoomKeyEvent |
class | MemberEventContent |
class | RoomMemberEvent |
class | RoomMessageEvent |
struct | PowerLevelsEventContent |
struct | JsonConverter< PowerLevelsEventContent > |
class | RoomPowerLevelsEvent |
class | RoomTombstoneEvent |
class | RoomServerAclEvent |
struct | JsonConverter< EventContent::SingleKeyValue< ValueT, KeyStr > > |
class | StateEvent |
class | EventTemplate< EventT, StateEvent, ContentT > |
class | KeyedStateEventBase |
class | KeylessStateEventBase |
class | StickerEvent |
struct | EventStats |
Counters of unread events and highlights with a precision flag. More... | |
struct | function_traits |
Determine traits of an arbitrary function/lambda/functor. More... | |
struct | function_traits< ReturnT(ArgTs...)> |
class | BaseJob |
class | Mocked |
class | DownloadFileJob |
class | JobHandle |
A job pointer and a QFuture in a single package. More... | |
class | MediaThumbnailJob |
class | RequestData |
class | SyncJob |
class | KeyImport |
struct | EmojiEntry |
class | KeyVerificationSession |
class | MxcReply |
class | NetworkAccessManager |
class | NetworkSettings |
class | ConnectionsGuard |
A guard pointer that disconnects an interested object upon destruction. More... | |
class | FileTransferInfo |
class | ReadReceipt |
Data structure for a room member's read receipt. More... | |
struct | Notification |
class | Room |
class | RoomMember |
Representation of a user state in a room. More... | |
struct | MemberSorter |
class | RoomStateView |
class | Settings |
class | SettingsGroup |
class | AccountSettings |
class | SsoSession |
struct | RoomSummary |
Room summary, as defined in MSC688. More... | |
struct | JsonObjectConverter< RoomSummary > |
struct | DevicesList |
struct | JsonObjectConverter< DevicesList > |
class | SyncRoomData |
class | SyncData |
class | Uri |
A wrapper around a Matrix URI or identifier. More... | |
class | UriResolverBase |
Abstract class to resolve the resource and act on it. More... | |
class | UriDispatcher |
Resolve the resource and invoke an action on it, via Qt signals. More... | |
class | User |
struct | HashQ |
This is only to make UnorderedMap alias work until we get rid of it. More... | |
class | Range |
class | asKeyValueRange |
An adaptor for Qt (hash-)maps to make them iterable in STL style. More... | |
struct | CStructDeleter |
struct | Overloads |
Multiplex several functors in one. More... | |
struct | HomeserverData |
Typedefs | |
using | LoginFlow = GetLoginFlowsJob::LoginFlow |
using | room_factory_t = std::function< Room *(Connection *, const QString &, JoinState)> |
using | user_factory_t = std::function< User *(Connection *, const QString &)> |
using | DirectChatsMap = QMultiHash< const User *, QString > |
using | IgnoredUsersList = IgnoredUsersEvent::value_type |
using | SslErrorCode = unsigned long |
template<size_t Size = DefaultPbkdf2KeyLength> | |
using | key_material_t = std::array< byte_t, Size > |
using | key_view_t = byte_view_t< DefaultPbkdf2KeyLength > |
template<typename T > | |
using | SslExpected = Expected< T, SslErrorCode > |
Same as QOlmExpected but for wrapping OpenSSL instead of Olm calls. More... | |
template<typename T > | |
using | QOlmExpected = Expected< T, OlmErrorCode > |
using | byte_t = uint8_t |
template<size_t N = std::dynamic_extent> | |
using | byte_view_t = std::span< const byte_t, N > |
template<size_t N = std::dynamic_extent> | |
using | byte_span_t = std::span< byte_t, N > |
using | OneTimeKeys = QHash< QString, std::variant< QString, SignedOneTimeKey > > |
using | QOlmInboundGroupSessionPtr = std::unique_ptr< QOlmInboundGroupSession > |
using | TagRecord = Tag |
using | TagsMap = QHash< QString, Tag > |
template<typename EventT > | |
using | event_ptr_tt = std::unique_ptr< EventT > |
using | event_type_t = QLatin1String |
using | EventPtr = event_ptr_tt< Event > |
template<EventClass EventT> | |
using | EventsArray = std::vector< event_ptr_tt< EventT > > |
using | Events = EventsArray< Event > |
using | FileSourceInfo = std::variant< QUrl, EncryptedFileMetadata > |
using | FileSourceInfoKeys = std::array< QLatin1String, std::variant_size_v< FileSourceInfo > > |
using | EventsWithReceipts = QVector< ReceiptsForEvent > |
using | RoomEventPtr = event_ptr_tt< RoomEvent > |
using | RoomEvents = EventsArray< RoomEvent > |
using | RoomEventsRange = std::ranges::subrange< RoomEvents::iterator > |
using | MessageEventType = RoomMessageEvent::MsgType |
using | StateEventPtr = event_ptr_tt< StateEvent > |
using | StateEvents = EventsArray< StateEvent > |
using | StateEventKey = std::pair< QString, QString > |
template<typename FnT , int ArgN = 0> | |
using | fn_arg_t = std::tuple_element_t< ArgN, typename function_traits< FnT >::arg_types > |
template<typename T > | |
using | Omittable = std::optional< T > |
template<std::indirectly_readable IterT, std::indirectly_regular_unary_invocable< std::iter_reference_t< IterT >> Proj> | |
using | IndirectlyProjected = std::projected< std::iter_reference_t< IterT >, Proj > |
Same as std::projected but Proj is checked against the reference under the iterator. More... | |
using | SyncDataList = std::vector< SyncRoomData > |
template<typename KeyT , typename ValT > | |
using | UnorderedMap = std::unordered_map< KeyT, ValT, HashQ< KeyT > > |
A wrapper around std::unordered_map compatible with types that have qHash. More... | |
template<typename ImplType , typename TypeToDelete = ImplType> | |
using | ImplPtr = std::unique_ptr< ImplType, void(*)(TypeToDelete *)> |
An owning implementation pointer. More... | |
template<typename T > | |
using | CStructPtr = std::unique_ptr< T, CStructDeleter< T > > |
An owning pointer to a C structure. More... | |
using | UserId = QString |
using | RoomId = QString |
using | EventId = QString |
Enumerations | |
enum | SslErrorCodes : SslErrorCode { SslErrorUserOffset = 128 , WrongDerivedKeyLength = SslErrorUserOffset + 1 , SslPayloadTooLong = SslErrorUserOffset + 2 } |
enum class | HttpVerb { Get , Put , Post , Delete } |
enum class | Membership : uint16_t { Invalid = 0x0 , Join = 0x1 , Leave = 0x2 , Invite = 0x4 , Knock = 0x8 , Ban = 0x10 , Undefined = Invalid } |
Membership states. More... | |
enum class | JoinState : std::underlying_type_t< Membership > { Invalid = std::underlying_type_t<Membership>(Membership::Invalid) , Join = std::underlying_type_t<Membership>(Membership::Join) , Leave = std::underlying_type_t<Membership>(Membership::Leave) , Invite = std::underlying_type_t<Membership>(Membership::Invite) , Knock = std::underlying_type_t<Membership>(Membership::Knock) } |
Local user join-state names. More... | |
enum | RunningPolicy { ForegroundRequest = 0x0 , BackgroundRequest = 0x1 } |
Network job running policy flags. More... | |
enum | UriResolveResult : int8_t { StillResolving = -1 , UriResolved = 0 , CouldNotResolve , IncorrectAction , InvalidUri , NoAccount } |
The result of URI resolution using UriResolver. More... | |
enum class | RoomType : uint8_t { Space = 0 , Undefined = 0xFF } |
enum class | EncryptionType : uint8_t { MegolmV1AesSha2 = 0 , Undefined = 0xFF } |
Functions | |
bool | operator== (const LoginFlow &lhs, const LoginFlow &rhs) |
bool | operator!= (const LoginFlow &lhs, const LoginFlow &rhs) |
template<typename T = Room> | |
auto | defaultRoomFactory (Connection *c, const QString &id, JoinState js) |
The default factory to create room objects. More... | |
template<typename T = User> | |
auto | defaultUserFactory (Connection *c, const QString &id) |
The default factory to create user objects. More... | |
void | editSubobject (QJsonObject &json, auto key, std::invocable< QJsonObject & > auto visitor) |
void | replaceSubvalue (QJsonObject &json, auto topLevelKey, auto subKey, QJsonValue subValue) |
template<typename PodT , typename JsonT > | |
PodT | fromJson (const JsonT &) |
template<typename T > | |
auto | toJson (const T &pod) |
template<typename T > | |
void | fillJson (QJsonObject &json, const T &data) |
template<typename JsonT , typename PodT > | |
void | fromJson (const JsonT &json, PodT &pod) |
template<typename T > | |
void | fillFromJson (const QJsonValue &jv, T &pod) |
template<typename EnumT , typename EnumStringValuesT > | |
std::optional< EnumT > | enumFromJsonString (const QString &s, const EnumStringValuesT &enumValues) |
Facility string-to-enum converter. More... | |
template<typename EnumT , typename EnumStringValuesT > | |
QString | enumToJsonString (EnumT v, const EnumStringValuesT &enumValues) |
Facility enum-to-string converter. More... | |
template<typename FlagT , typename FlagStringValuesT > | |
std::optional< FlagT > | flagFromJsonString (const QString &s, const FlagStringValuesT &flagValues) |
Facility converter for flags. More... | |
template<typename FlagT , typename FlagStringValuesT > | |
QString | flagToJsonString (FlagT v, const FlagStringValuesT &flagValues) |
template<> | |
bool | fromJson (const QJsonValue &jv) |
template<> | |
QJsonArray | fromJson (const QJsonDocument &jd) |
QJsonValue | toJson (const QDateTime &val) |
QJsonValue | toJson (const QDate &val) |
template<typename... Ts> | |
QJsonValue | toJson (const std::variant< Ts... > &v) |
QJsonObject QUOTIENT_API | toJson (const QVariantHash &vh) |
template<bool Force = true, typename ContT , typename KeyT , typename ValT > | |
void | addParam (ContT &container, KeyT &&key, ValT &&value) |
auto | toSnakeCase (QLatin1String s) |
auto | collectResponse (const GetAccountDataJob *job) |
auto | collectResponse (const GetAccountDataPerRoomJob *job) |
auto | collectResponse (const GetAccount3PIDsJob *job) |
QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED auto | collectResponse (const Post3PIDsJob *job) |
auto | collectResponse (const Delete3pidFromAccountJob *job) |
auto | collectResponse (const Unbind3pidFromAccountJob *job) |
auto | collectResponse (const RequestTokenTo3PIDEmailJob *job) |
auto | collectResponse (const RequestTokenTo3PIDMSISDNJob *job) |
auto | collectResponse (const GetConfigAuthedJob *job) |
auto | collectResponse (const GetCapabilitiesJob *job) |
auto | collectResponse (const UploadContentJob *job) |
QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED auto | collectResponse (const GetConfigJob *job) |
auto | collectResponse (const CreateRoomJob *job) |
auto | collectResponse (const UploadCrossSigningSignaturesJob *job) |
auto | collectResponse (const GetDevicesJob *job) |
auto | collectResponse (const GetDeviceJob *job) |
auto | collectResponse (const GetLocalAliasesJob *job) |
auto | collectResponse (const DefineFilterJob *job) |
auto | collectResponse (const GetFilterJob *job) |
auto | collectResponse (const JoinRoomByIdJob *job) |
auto | collectResponse (const JoinRoomJob *job) |
auto | collectResponse (const PostRoomKeysVersionJob *job) |
auto | collectResponse (const GetRoomKeyBySessionIdJob *job) |
auto | collectResponse (const GetRoomKeysByRoomIdJob *job) |
auto | collectResponse (const GetRoomKeysJob *job) |
auto | collectResponse (const UploadKeysJob *job) |
auto | collectResponse (const KnockRoomJob *job) |
auto | collectResponse (const GetJoinedRoomsJob *job) |
auto | collectResponse (const GetRoomVisibilityOnDirectoryJob *job) |
auto | collectResponse (const GetLoginFlowsJob *job) |
auto | collectResponse (const RequestOpenIdTokenJob *job) |
auto | collectResponse (const GetDisplayNameJob *job) |
auto | collectResponse (const GetAvatarUrlJob *job) |
auto | collectResponse (const GetPushersJob *job) |
auto | collectResponse (const GetPushRulesJob *job) |
auto | collectResponse (const GetPushRulesGlobalJob *job) |
auto | collectResponse (const GetPushRuleJob *job) |
auto | collectResponse (const IsPushRuleEnabledJob *job) |
auto | collectResponse (const GetPushRuleActionsJob *job) |
auto | collectResponse (const RedactEventJob *job) |
auto | collectResponse (const RequestTokenToRegisterEmailJob *job) |
auto | collectResponse (const RequestTokenToRegisterMSISDNJob *job) |
auto | collectResponse (const RequestTokenToResetPasswordEmailJob *job) |
auto | collectResponse (const RequestTokenToResetPasswordMSISDNJob *job) |
auto | collectResponse (const DeactivateAccountJob *job) |
auto | collectResponse (const CheckUsernameAvailabilityJob *job) |
auto | collectResponse (const RegistrationTokenValidityJob *job) |
auto | collectResponse (const SendMessageJob *job) |
auto | collectResponse (const SetRoomStateWithKeyJob *job) |
auto | collectResponse (const UpgradeRoomJob *job) |
auto | collectResponse (GetOneRoomEventJob *job) |
auto | collectResponse (const GetRoomStateWithKeyJob *job) |
auto | collectResponse (GetRoomStateJob *job) |
auto | collectResponse (GetMembersByRoomJob *job) |
auto | collectResponse (const GetJoinedMembersByRoomJob *job) |
auto | collectResponse (const SearchJob *job) |
auto | collectResponse (const GetRoomTagsJob *job) |
auto | collectResponse (const GetProtocolsJob *job) |
auto | collectResponse (const GetProtocolMetadataJob *job) |
auto | collectResponse (const QueryLocationByProtocolJob *job) |
auto | collectResponse (const QueryUserByProtocolJob *job) |
auto | collectResponse (const QueryLocationByAliasJob *job) |
auto | collectResponse (const QueryUserByIDJob *job) |
auto | collectResponse (const GetTurnServerJob *job) |
auto | collectResponse (const GetWellknownJob *job) |
QByteArray | zeroedByteArray (QByteArray::size_type n=32) |
template<size_t N, typename T = uint8_t> | |
consteval std::array< T, N > | zeroes () |
template<size_t Size = DefaultPbkdf2KeyLength> | |
QUOTIENT_API SslExpected< key_material_t< Size > > | pbkdf2HmacSha512 (const QByteArray &passphrase, const QByteArray &salt, int iterations) |
Generate a key out of the given passphrase. More... | |
QUOTIENT_API SslExpected< HkdfKeys > | hkdfSha256 (key_view_t key, byte_view_t< 32 > salt, byte_view_t<> info) |
Derive a key from the input data using HKDF-SHA256. More... | |
QUOTIENT_API SslExpected< QByteArray > | hmacSha256 (byte_view_t< HmacKeySize > hmacKey, const QByteArray &data) |
Calculate a MAC from the given key and data. More... | |
QUOTIENT_API QOlmExpected< QByteArray > | curve25519AesSha2Decrypt (QByteArray ciphertext, const QByteArray &privateKey, const QByteArray &ephemeral, const QByteArray &mac) |
Decrypt the data using Curve25519-AES-Sha256. More... | |
QUOTIENT_API QOlmExpected< Curve25519Encrypted > | curve25519AesSha2Encrypt (const QByteArray &plaintext, const QByteArray &publicKey) |
Encrypt the data using Curve25519-AES-Sha256. More... | |
QUOTIENT_API SslExpected< QByteArray > | aesCtr256Encrypt (const QByteArray &plaintext, byte_view_t< Aes256KeySize > key, byte_view_t< AesBlockSize > iv) |
Encrypt data using AES-CTR-256. More... | |
QUOTIENT_API SslExpected< QByteArray > | aesCtr256Decrypt (const QByteArray &ciphertext, byte_view_t< Aes256KeySize > key, byte_view_t< AesBlockSize > iv) |
Decrypt data using AES-CTR-256. More... | |
QUOTIENT_API std::vector< byte_t > | base58Decode (const QByteArray &encoded) |
QUOTIENT_API QByteArray | sign (const QByteArray &key, const QByteArray &data) |
bool | isSupportedAlgorithm (const QString &algorithm) |
QUOTIENT_API QByteArray | byteArrayForOlm (size_t bufferSize) |
Initialise a buffer object for use with Olm calls. More... | |
size_t | unsignedSize (const auto &buffer) requires(sizeof(std |
Get a size of a container coerced to size_t. More... | |
template<size_t N = std::dynamic_extent> | |
auto | asCBytes (const auto &buf) |
Obtain a std::span<const byte_t, N> looking into the passed buffer. More... | |
template<size_t N = std::dynamic_extent> | |
auto | asWritableCBytes (auto &buf) |
Obtain a std::span<byte_t, N> looking into the passed buffer. More... | |
auto | viewAsByteArray (const auto &aRange) -> auto requires(sizeof(*aRange.data())==sizeof(char)) |
auto | getRandom (size_t bytes) |
template<size_t SizeN> | |
auto | getRandom () |
QUOTIENT_API void | fillFromSecureRng (std::span< byte_t > bytes) |
Fill the buffer with the securely generated random bytes. More... | |
QUOTIENT_API bool | verifyIdentitySignature (const DeviceKeys &deviceKeys, const QString &deviceId, const QString &userId) |
QUOTIENT_API bool | ed25519VerifySignature (const QString &signingKey, const QJsonObject &obj, const QString &signature) |
checks if the signature is signed by the signing_key More... | |
QDebug & | operator<< (QDebug &d, const TimelineItem &ti) |
std::partial_ordering | operator<=> (const Tag &lhs, const Tag &rhs) |
bool | operator== (const Tag &lhs, const Tag &rhs) |
DEFINE_SIMPLE_EVENT (ReadMarkerEvent, Event, "m.fully_read", QString, eventId, "event_id") DEFINE_SIMPLE_EVENT(IgnoredUsersEvent | |
template<EventClass EventT> | |
bool | is (const Event &e) |
bool | operator== (const AbstractEventMetaType &lhs, const AbstractEventMetaType &rhs) |
template<EventClass EventT, typename... ArgTs> | |
event_ptr_tt< EventT > | makeEvent (ArgTs &&... args) |
Create an event of arbitrary type from its arguments. More... | |
template<EventClass EventT> | |
constexpr const auto & | mostSpecificMetaType () |
template<EventClass EventT> | |
event_ptr_tt< EventT > | loadEvent (const QJsonObject &fullJson) |
Create an event with proper type from a JSON object. More... | |
template<EventClass EventT> | |
event_ptr_tt< EventT > | loadEvent (const QString &matrixType, const auto &... otherBasicJsonParams) |
Create an event from a type string and content JSON. More... | |
template<EventClass EventT, typename BasePtrT > | |
auto | eventCast (const BasePtrT &eptr) -> decltype(static_cast< EventT * >(std::to_address(eptr))) |
Cast the event pointer down in a type-safe way. More... | |
template<EventClass EventT, typename BaseEventT > | |
auto | eventCast (event_ptr_tt< BaseEventT > &&eptr) |
Cast the event pointer down in a type-safe way, with moving. More... | |
template<EventClass BaseT, typename TailT > | |
auto | switchOnType (const BaseT &event, TailT &&tail) |
template<typename FnT1 , typename... FnTs> | |
auto | switchOnType (const EventClass auto &event, FnT1 &&fn1, FnTs &&... fns) |
QUOTIENT_API std::pair< EncryptedFileMetadata, QByteArray > | encryptFile (const QByteArray &plainText) |
QUOTIENT_API QByteArray | decryptFile (const QByteArray &ciphertext, const EncryptedFileMetadata &metadata) |
QUOTIENT_API QUrl | getUrlFromSourceInfo (const FileSourceInfo &fsi) |
QUOTIENT_API void | setUrlInSourceInfo (FileSourceInfo &fsi, const QUrl &newUrl) |
template<> | |
void | fillJson (QJsonObject &, const FileSourceInfo &)=delete |
QUOTIENT_API void | fillJson (QJsonObject &jo, const FileSourceInfoKeys &jsonKeys, const FileSourceInfo &fsi) |
Export FileSourceInfo to a JSON object. More... | |
QUOTIENT_API FileSourceInfo | fileSourceInfoFromJson (const QJsonObject &jo, const FileSourceInfoKeys &jsonKeys) |
template<> | |
QUOTIENT_API EventsWithReceipts | fromJson (const QJsonObject &json) |
QUOTIENT_API QJsonObject | toJson (const EventsWithReceipts &ewrs) |
template<> | |
auto | toJson (const EventContent::AliasesEventContent &c) |
QUOTIENT_API bool | isStateEvent (const QString &eventTypeId) |
Determine whether a given event type is that of a state event. More... | |
template<> | |
QUOTIENT_API bool | RoomMessageEvent::has< EventContent::TextContent > () const |
template<> | |
QUOTIENT_API bool | RoomMessageEvent::has< EventContent::LocationContent > () const |
template<> | |
QUOTIENT_API bool | RoomMessageEvent::has< EventContent::FileContentBase > () const |
template<> | |
QUOTIENT_API bool | RoomMessageEvent::has< EventContent::FileContent > () const |
template<> | |
QUOTIENT_API bool | RoomMessageEvent::has< EventContent::ImageContent > () const |
template<> | |
QUOTIENT_API bool | RoomMessageEvent::has< EventContent::AudioContent > () const |
template<> | |
QUOTIENT_API bool | RoomMessageEvent::has< EventContent::VideoContent > () const |
DEFINE_SIMPLE_STATE_EVENT (RoomTopicEvent, "m.room.topic", QString, topic, "topic") DEFINE_SIMPLE_STATE_EVENT(RoomPinnedEventsEvent | |
QUOTIENT_API QDebug | operator<< (QDebug dbg, const EventStats &es) |
template<typename T , typename E > | |
requires (!std::is_same_v< T, E >) class Expected | |
A minimal subset of std::expected from C++23. More... | |
bool QUOTIENT_API | isJobPending (BaseJob *job) |
template<std::derived_from< BaseJob > JobT> | |
auto | collectResponse (JobT *job) requires requires |
Get a job response in a single structure. More... | |
template<std::derived_from< BaseJob > JobT> | |
JobHandle (JobT *) -> JobHandle< JobT > | |
auto | collectResponse (const MediaThumbnailJob *j) |
template<typename SmartSlotT > | |
auto | connectUntil (auto *sender, auto signal, QObject *context, SmartSlotT &&smartSlot, Qt::ConnectionType connType=Qt::AutoConnection) |
Create a connection that self-disconnects when its slot returns true. More... | |
template<typename ContextT , typename SlotT > | |
auto | connectSingleShot (auto *sender, auto signal, ContextT *context, SlotT slot, Qt::ConnectionType connType=Qt::AutoConnection) |
Create a connection that self-disconnects after triggering on the signal. More... | |
template<std::input_iterator IterT, typename ValT , typename Proj = std::identity> | |
requires constexpr std::indirect_binary_predicate< std::ranges::equal_to, IndirectlyProjected< IterT, Proj >, const ValT * > auto | findIndirect (IterT from, IterT to, const ValT &value, Proj proj={}) |
Find a value in a container of (smart) pointers. More... | |
template<typename RangeT , typename ValT , typename Proj = std::identity> | |
requires constexpr std::indirect_binary_predicate< std::ranges::equal_to, IndirectlyProjected< std::ranges::iterator_t< RangeT >, Proj >, const ValT * > auto | findIndirect (RangeT &&range, const ValT &value, Proj proj={}) |
The overload of findIndirect for ranges. More... | |
void | swap (ReadReceipt &lhs, ReadReceipt &rhs) |
template<template< class > class ContT> | |
ContT< RoomMember >::size_type | lowerBoundMemberIndex (const ContT< RoomMember > &c, const auto &v, MemberSorter ms={}) |
template<template< class > class ContT> | |
ContT< QString >::size_type | lowerBoundMemberIndex (const ContT< QString > &c, const auto &v, const Room *r, MemberSorter ms={}) |
auto | memberMatcher (auto substr, Qt::CaseSensitivity cs=Qt::CaseSensitive) |
A factory to get a functional object matching room members against a substring. More... | |
QUOTIENT_API QDebug | operator<< (QDebug dbg, const RoomSummary &rs) |
QDebug | operator<< (QDebug dhg, const DevicesList &devicesList) |
QUOTIENT_API UriResolveResult | visitResource (Connection *account, const Uri &uri, std::function< UriResolveResult(User *, QString)> userHandler, std::function< void(Room *, QString)> roomEventHandler, std::function< void(Connection *, QString, QStringList)> joinHandler, std::function< bool(const QUrl &)> nonMatrixHandler) |
Resolve the resource and invoke an action on it, via function objects. More... | |
UriResolveResult | checkResource (Connection *account, const Uri &uri) |
Check that the resource is resolvable with no action on it. More... | |
bool | alarmX (bool alarmCondition, const auto &msg, [[maybe_unused]] std::source_location loc=std::source_location::current()) |
constexpr auto | operator""_ls (const char *s, std::size_t size) |
QT_IGNORE_DEPRECATIONS (template< typename U > asKeyValueRange(U &) -> asKeyValueRange< U & >;template< typename U > asKeyValueRange(U &&) -> asKeyValueRange< U >;) template< typename InputIt | |
Pred std::pair< InputIt, ForwardIt > | findFirstOf (InputIt first, InputIt last, ForwardIt sFirst, ForwardIt sLast, Pred pred) |
template<typename ImplType , typename TypeToDelete = ImplType, typename... ArgTs> | |
ImplPtr< ImplType, TypeToDelete > | makeImpl (ArgTs &&... args) |
make_unique for ImplPtr More... | |
template<typename ImplType , typename TypeToDelete = ImplType> | |
ImplPtr< ImplType, TypeToDelete > | acquireImpl (ImplType *from) |
template<typename ImplType , typename TypeToDelete = ImplType> | |
constexpr ImplPtr< ImplType, TypeToDelete > | ZeroImpl () |
template<typename T > | |
auto | makeCStruct (T *(*constructor)(void *), size_t(*sizeFn)(), auto destructor) |
Create a C structure with pre-programmed deletion logic. More... | |
template<typename... FunctorTs> | |
Overloads (FunctorTs &&...) -> Overloads< FunctorTs... > | |
QUOTIENT_API void | linkifyUrls (QString &htmlEscapedText) |
QUOTIENT_API QString | sanitized (const QString &plainText) |
QUOTIENT_API QString | prettyPrint (const QString &plainText) |
QUOTIENT_API QString | cacheLocation (QStringView dirName) |
QUOTIENT_API qreal | stringToHueF (const QString &s) |
QUOTIENT_API QString | serverPart (const QString &mxId) |
QUOTIENT_API QString | versionString () |
QUOTIENT_API int | majorVersion () |
QUOTIENT_API int | minorVersion () |
QUOTIENT_API int | patchVersion () |
QDebug | formatJson (QDebug dbg) |
QDebug manipulator to setup the stream for JSON output. More... | |
QDebug | terse (QDebug dbg) |
Suppress full qualification of enums/QFlags when logging. More... | |
template<typename FnT > | |
auto | lift (FnT &&fn, auto &&... args) |
Lift an operation into dereferenceable types (std::optional or pointers) More... | |
template<typename T1 , typename T2 > | |
requires constexpr std::is_assignable_v< T1 &, const T2 & > bool | merge (T1 &lhs, const std::optional< T2 > &rhs) |
Merge the value from an optional. More... | |
template<typename StructT > | |
constexpr size_t | mergeStruct (StructT &lhs, const StructT &rhs, const auto... fields) |
Merge structure-like types. More... | |
QUOTIENT_API bool | isGuestUserId (const UserId &uId) |
Variables | |
constexpr bool | IfNotEmpty = false |
template<std::derived_from< GetWhoIsJob > JobT> | |
constexpr auto | doCollectResponse< JobT > |
constexpr auto | DefaultPbkdf2KeyLength = 32u |
constexpr auto | Aes256KeySize = 32u |
constexpr auto | AesBlockSize = 16u |
constexpr auto | HmacKeySize = 32u |
constexpr auto | AlgorithmKeyL = "algorithm"_L1 |
constexpr auto | RotationPeriodMsKeyL = "rotation_period_ms"_L1 |
constexpr auto | RotationPeriodMsgsKeyL = "rotation_period_msgs"_L1 |
constexpr auto | AlgorithmKey = "algorithm"_L1 |
constexpr auto | RotationPeriodMsKey = "rotation_period_ms"_L1 |
constexpr auto | RotationPeriodMsgsKey = "rotation_period_msgs"_L1 |
constexpr auto | Ed25519Key = "ed25519"_L1 |
constexpr auto | Curve25519Key = "curve25519"_L1 |
constexpr auto | SignedCurve25519Key = "signed_curve25519"_L1 |
constexpr auto | OlmV1Curve25519AesSha2AlgoKey = "m.olm.v1.curve25519-aes-sha2"_L1 |
constexpr auto | MegolmV1AesSha2AlgoKey = "m.megolm.v1.aes-sha2"_L1 |
constexpr std::array | SupportedAlgorithms |
constexpr auto | FavouriteTag = "m.favourite"_L1 |
constexpr auto | LowPriorityTag = "m.lowpriority"_L1 |
constexpr auto | ServerNoticeTag = "m.server_notice"_L1 |
Event | |
m | ignored_user_list |
m | QSet< QString > |
m | ignoredUsers |
constexpr auto | CiphertextKey = "ciphertext"_L1 |
constexpr auto | SenderKeyKey = "sender_key"_L1 |
constexpr auto | DeviceIdKey = "device_id"_L1 |
constexpr auto | SessionIdKey = "session_id"_L1 |
constexpr auto | TypeKey = "type"_L1 |
constexpr auto | ContentKey = "content"_L1 |
constexpr auto | SenderKey = "sender"_L1 |
constexpr auto | UnsignedKey = "unsigned"_L1 |
template<typename EventT , typename BaseEventT = Event> | |
concept | EventClass = std::derived_from<EventT, BaseEventT> |
constexpr auto | BodyKey = "body"_L1 |
constexpr auto | FormatKey = "format"_L1 |
constexpr auto | FormattedBodyKey = "formatted_body"_L1 |
constexpr auto | HtmlContentTypeId = "org.matrix.custom.html"_L1 |
constexpr auto | InfoKey = "info"_L1 |
constexpr auto | RelatesToKey = "m.relates_to"_L1 |
constexpr auto | RelTypeKey = "rel_type"_L1 |
constexpr auto | IsFallingBackKey = "is_falling_back"_L1 |
constexpr auto | SasV1Method = "m.sas.v1"_L1 |
constexpr auto | HmacSha256Code = "hkdf-hmac-sha256"_L1 |
constexpr auto | HmacSha256V2Code = "hkdf-hmac-sha256.v2"_L1 |
constexpr std::array | SupportedMacs { HmacSha256Code, HmacSha256V2Code } |
constexpr auto | EventIdKey = "event_id"_L1 |
constexpr auto | RoomIdKey = "room_id"_L1 |
constexpr auto | StateKeyKey = "state_key"_L1 |
constexpr auto | RedactedCauseKey = "redacted_because"_L1 |
m room | pinned_events |
m room | QStringList |
m room | pinnedEvents |
constexpr auto | PrevContentKey = "prev_content"_L1 |
template<typename EvT > | |
concept | Keyed_State_Event = EvT::needsStateKey |
template<typename EvT > | |
concept | Keyless_State_Event = !EvT::needsStateKey |
template<typename FnT > | |
constexpr auto | fn_arg_count_v |
template<typename JobT > | |
constexpr auto | doCollectResponse = nullptr |
template<typename FnT , typename JobT > | |
concept | BoundResultHandler |
template<typename FnT , typename JobT > | |
concept | ResultHandler = BoundResultHandler<FnT, JobT> || std::is_member_function_pointer_v<FnT> |
constexpr auto | none = std::nullopt |
constexpr std::array | MembershipStrings |
constexpr std::array | JoinStateStrings |
constexpr std::array | RoomTypeStrings { "m.space"_L1 } |
template<typename FnT , class EvT = std::decay_t<fn_arg_t<FnT>>> | |
concept | Keyed_State_Fn = EvT::needsStateKey |
template<typename FnT , class EvT = std::decay_t<fn_arg_t<FnT>>> | |
concept | Keyless_State_Fn = !EvT::needsStateKey |
constexpr auto | UnreadNotificationsKey = "unread_notifications"_L1 |
constexpr auto | PartiallyReadCountKey = "x-quotient.since_fully_read_count"_L1 |
constexpr auto | NewUnreadCountKey = "org.matrix.msc2654.unread_count"_L1 |
constexpr auto | HighlightCountKey = "highlight_count"_L1 |
ForwardIt | |
constexpr qint64 | ProfilerMinNsecs |
using Quotient::byte_span_t = typedef std::span<byte_t, N> |
Definition at line 95 of file e2ee_common.h.
using Quotient::byte_t = typedef uint8_t |
Definition at line 89 of file e2ee_common.h.
using Quotient::byte_view_t = typedef std::span<const byte_t, N> |
Definition at line 92 of file e2ee_common.h.
using Quotient::CStructPtr = typedef std::unique_ptr<T, CStructDeleter<T> > |
An owning pointer to a C structure.
This is intented to ease lifecycle management of Olm structures.
using Quotient::DirectChatsMap = typedef QMultiHash<const User*, QString> |
Definition at line 111 of file connection.h.
using Quotient::event_ptr_tt = typedef std::unique_ptr<EventT> |
using Quotient::event_type_t = typedef QLatin1String |
using Quotient::EventId = typedef QString |
using Quotient::EventPtr = typedef event_ptr_tt<Event> |
using Quotient::Events = typedef EventsArray<Event> |
using Quotient::EventsArray = typedef std::vector<event_ptr_tt<EventT> > |
using Quotient::EventsWithReceipts = typedef QVector<ReceiptsForEvent> |
Definition at line 20 of file receiptevent.h.
using Quotient::FileSourceInfo = typedef std::variant<QUrl, EncryptedFileMetadata> |
Definition at line 70 of file filesourceinfo.h.
using Quotient::FileSourceInfoKeys = typedef std::array<QLatin1String, std::variant_size_v<FileSourceInfo> > |
Definition at line 72 of file filesourceinfo.h.
using Quotient::fn_arg_t = typedef std::tuple_element_t<ArgN, typename function_traits<FnT>::arg_types> |
Definition at line 86 of file function_traits.h.
using Quotient::IgnoredUsersList = typedef IgnoredUsersEvent::value_type |
Definition at line 112 of file connection.h.
using Quotient::ImplPtr = typedef std::unique_ptr<ImplType, void (*)(TypeToDelete*)> |
An owning implementation pointer.
This is basically std::unique_ptr<> to hold your pimpl's but without having to define default constructors/operator=() out of line. Thanks to https://oliora.github.io/2015/12/29/pimpl-and-rule-of-zero.html for inspiration
using Quotient::IndirectlyProjected = typedef std::projected<std::iter_reference_t<IterT>, Proj> |
Same as std::projected but Proj is checked against the reference under the iterator.
Definition at line 10 of file ranges_extras.h.
using Quotient::key_material_t = typedef std::array<byte_t, Size> |
Definition at line 44 of file cryptoutils.h.
using Quotient::key_view_t = typedef byte_view_t<DefaultPbkdf2KeyLength> |
Definition at line 45 of file cryptoutils.h.
using Quotient::LoginFlow = typedef GetLoginFlowsJob::LoginFlow |
Definition at line 60 of file connection.h.
using Quotient::MessageEventType = typedef RoomMessageEvent::MsgType |
Definition at line 185 of file roommessageevent.h.
using Quotient::Omittable = typedef std::optional<T> |
Definition at line 13 of file omittable.h.
using Quotient::OneTimeKeys = typedef QHash<QString, std::variant<QString, SignedOneTimeKey> > |
Definition at line 357 of file e2ee_common.h.
using Quotient::QOlmExpected = typedef Expected<T, OlmErrorCode> |
Definition at line 64 of file e2ee_common.h.
using Quotient::QOlmInboundGroupSessionPtr = typedef std::unique_ptr<QOlmInboundGroupSession> |
Definition at line 60 of file qolminboundsession.h.
using Quotient::room_factory_t = typedef std::function<Room*(Connection*, const QString&, JoinState)> |
Definition at line 83 of file connection.h.
using Quotient::RoomEventPtr = typedef event_ptr_tt<RoomEvent> |
Definition at line 92 of file roomevent.h.
using Quotient::RoomEvents = typedef EventsArray<RoomEvent> |
Definition at line 93 of file roomevent.h.
using Quotient::RoomEventsRange = typedef std::ranges::subrange<RoomEvents::iterator> |
Definition at line 94 of file roomevent.h.
using Quotient::RoomId = typedef QString |
using Quotient::SslErrorCode = typedef unsigned long |
Definition at line 41 of file cryptoutils.h.
using Quotient::SslExpected = typedef Expected<T, SslErrorCode> |
Same as QOlmExpected but for wrapping OpenSSL instead of Olm calls.
Definition at line 55 of file cryptoutils.h.
using Quotient::StateEventKey = typedef std::pair<QString, QString> |
A combination of event type and state key uniquely identifies a piece of state in Matrix.
Definition at line 58 of file stateevent.h.
using Quotient::StateEventPtr = typedef event_ptr_tt<StateEvent> |
Definition at line 49 of file stateevent.h.
using Quotient::StateEvents = typedef EventsArray<StateEvent> |
Definition at line 50 of file stateevent.h.
using Quotient::SyncDataList = typedef std::vector<SyncRoomData> |
Definition at line 81 of file syncdata.h.
using Quotient::TagRecord = typedef Tag |
Definition at line 15 of file accountdataevents.h.
using Quotient::TagsMap = typedef QHash<QString, Tag> |
Definition at line 32 of file accountdataevents.h.
using Quotient::UnorderedMap = typedef std::unordered_map<KeyT, ValT, HashQ<KeyT> > |
using Quotient::user_factory_t = typedef std::function<User*(Connection*, const QString&)> |
Definition at line 85 of file connection.h.
using Quotient::UserId = typedef QString |
|
strong |
Enumerator | |
---|---|
MegolmV1AesSha2 | |
Undefined |
Definition at line 119 of file quotient_common.h.
|
strong |
|
strong |
Local user join-state names.
This represents a subset of Membership values that may arrive as the local user's state grouping for the sync response.
Enumerator | |
---|---|
Invalid | |
Join | |
Leave | |
Invite | |
Knock |
Definition at line 78 of file quotient_common.h.
|
strong |
Membership states.
These are used for member events. The names here are case-insensitively equal to state names used on the wire.
Enumerator | |
---|---|
Invalid | |
Join | |
Leave | |
Invite | |
Knock | |
Ban | |
Undefined |
Definition at line 55 of file quotient_common.h.
|
strong |
Enumerator | |
---|---|
Space | |
Undefined |
Definition at line 111 of file quotient_common.h.
Network job running policy flags.
So far only background/foreground flags are available.
Enumerator | |
---|---|
ForegroundRequest | |
BackgroundRequest |
Definition at line 96 of file quotient_common.h.
Enumerator | |
---|---|
SslErrorUserOffset | |
WrongDerivedKeyLength | |
SslPayloadTooLong |
Definition at line 47 of file cryptoutils.h.
enum Quotient::UriResolveResult : int8_t |
The result of URI resolution using UriResolver.
Enumerator | |
---|---|
StillResolving | |
UriResolved | |
CouldNotResolve | |
IncorrectAction | |
InvalidUri | |
NoAccount |
Definition at line 101 of file quotient_common.h.
|
inline |
|
inline |
Add a key-value pair to QJsonObject or QUrlQuery
Adds a key-value pair(s) specified by key
and value
to container
, optionally (in case IfNotEmpty is passed for the first template parameter) taking into account the value "emptiness". With IfNotEmpty, value
is NOT added to the container if and only if:
isEmpty()
and value.isEmpty() == true
, ornullopt
).If container
is a QUrlQuery, an attempt to fit value
into it is made as follows:
value
is a QJsonObject, key
is ignored and pairs from value
are copied to container
, assuming that the value in each pair is a string;value
is a QStringList, it is "exploded" into a list of key-value pairs with key equal to key
and value taken from each list item;value
is a bool, its OpenAPI (i.e. JSON) representation is added to the query (true
or false
, respectively).Force | add the pair even if the value is empty. This is true by default; passing IfNotEmpty or false for this parameter enables emptiness checks as described above |
Definition at line 555 of file converters.h.
QUOTIENT_API SslExpected<QByteArray> Quotient::aesCtr256Decrypt | ( | const QByteArray & | ciphertext, |
byte_view_t< Aes256KeySize > | key, | ||
byte_view_t< AesBlockSize > | iv | ||
) |
Decrypt data using AES-CTR-256.
key and iv have a length of 32 bytes
QUOTIENT_API SslExpected<QByteArray> Quotient::aesCtr256Encrypt | ( | const QByteArray & | plaintext, |
byte_view_t< Aes256KeySize > | key, | ||
byte_view_t< AesBlockSize > | iv | ||
) |
Encrypt data using AES-CTR-256.
key and iv have a length of 32 bytes
|
inline |
|
inline |
Obtain a std::span<const byte_t, N> looking into the passed buffer.
This function returns an adaptor object that is suitable for OpenSSL/Olm invocations (via std::span<>::data() accessor) so that you don't have to wrap your containers into reinterpret/bit_casts on every OpenSSL call.
std::dynamic_extent
Definition at line 124 of file e2ee_common.h.
|
inline |
Obtain a std::span<byte_t, N> looking into the passed buffer.
Definition at line 131 of file e2ee_common.h.
QUOTIENT_API std::vector<byte_t> Quotient::base58Decode | ( | const QByteArray & | encoded | ) |
QUOTIENT_API QByteArray Quotient::byteArrayForOlm | ( | size_t | bufferSize | ) |
Initialise a buffer object for use with Olm calls.
Qt and Olm use different size types; this causes the warning noise
QUOTIENT_API QString Quotient::cacheLocation | ( | QStringView | dirName | ) |
Return a path to cache directory after making sure that it exists
The returned path has a trailing slash, clients don't need to append it.
dirName | path to cache directory relative to the standard cache path |
|
inline |
Check that the resource is resolvable with no action on it.
Definition at line 116 of file uriresolver.h.
|
inline |
Definition at line 425 of file registration.h.
|
inline |
Definition at line 183 of file create_room.h.
|
inline |
Definition at line 387 of file registration.h.
|
inline |
|
inline |
Definition at line 240 of file administrative_contact.h.
|
inline |
Definition at line 62 of file administrative_contact.h.
|
inline |
Definition at line 59 of file account-data.h.
|
inline |
Definition at line 117 of file account-data.h.
|
inline |
|
inline |
Definition at line 88 of file capabilities.h.
|
inline |
Definition at line 354 of file authed-content-repo.h.
|
inline |
Definition at line 528 of file content-repo.h.
|
inline |
Definition at line 54 of file device_management.h.
|
inline |
Definition at line 31 of file device_management.h.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 28 of file list_joined_rooms.h.
|
inline |
Definition at line 125 of file directory.h.
|
inline |
|
inline |
Definition at line 60 of file third_party_lookup.h.
|
inline |
Definition at line 37 of file third_party_lookup.h.
|
inline |
|
inline |
Definition at line 226 of file pushrules.h.
|
inline |
Definition at line 82 of file pushrules.h.
|
inline |
Definition at line 54 of file pushrules.h.
|
inline |
Definition at line 33 of file pushrules.h.
|
inline |
Definition at line 285 of file key_backup.h.
|
inline |
Definition at line 398 of file key_backup.h.
|
inline |
Definition at line 501 of file key_backup.h.
|
inline |
|
inline |
|
inline |
Definition at line 32 of file list_public_rooms.h.
|
inline |
|
inline |
Definition at line 37 of file wellknown.h.
|
inline |
Definition at line 183 of file pushrules.h.
|
inline |
|
inline |
|
inline |
Definition at line 51 of file knocking.h.
|
inline |
Definition at line 39 of file mediathumbnailjob.h.
|
inline |
Definition at line 134 of file administrative_contact.h.
|
inline |
Definition at line 32 of file key_backup.h.
|
inline |
Definition at line 154 of file third_party_lookup.h.
|
inline |
Definition at line 98 of file third_party_lookup.h.
|
inline |
Definition at line 177 of file third_party_lookup.h.
|
inline |
Definition at line 127 of file third_party_lookup.h.
|
inline |
Definition at line 46 of file redaction.h.
|
inline |
Definition at line 37 of file registration_tokens.h.
|
inline |
|
inline |
Definition at line 311 of file administrative_contact.h.
|
inline |
Definition at line 334 of file administrative_contact.h.
|
inline |
Definition at line 197 of file registration.h.
|
inline |
Definition at line 218 of file registration.h.
|
inline |
Definition at line 281 of file registration.h.
|
inline |
Definition at line 314 of file registration.h.
|
inline |
|
inline |
Definition at line 40 of file room_send.h.
|
inline |
Definition at line 49 of file room_state.h.
|
inline |
Definition at line 282 of file administrative_contact.h.
|
inline |
Definition at line 27 of file room_upgrades.h.
|
inline |
Definition at line 34 of file content-repo.h.
|
inline |
Definition at line 84 of file cross_signing.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Get a job response in a single structure.
Use this to get all parts of the job response in a single C++ type, defined by the job class. It can be either an aggregate of individual response parts returned by job accessors, or, if the response is already singular, a type of this response. The default implementation caters to generated jobs, where the code has to be generic enough to work with copyable and movable-only responses. For manually written code, simply overload collectResponse() for the respective job type, with appropriate constness.
|
inline |
Create a connection that self-disconnects after triggering on the signal.
Definition at line 43 of file qt_connection_util.h.
|
inline |
Create a connection that self-disconnects when its slot returns true.
The "slot" signature accepted by connectUntil() is different from normal Qt slots in that its return value must be bool, not void. Also, as of this writing, connectUntil() doesn't accept member function pointers for slots as QObject::connect or Quotient::connectSingleShot do; if you want to use a member function of the context object you should pass a lambda or bind the context to the member function with std::bind_front before passing it to connectUntil().
Definition at line 22 of file qt_connection_util.h.
QUOTIENT_API QOlmExpected<QByteArray> Quotient::curve25519AesSha2Decrypt | ( | QByteArray | ciphertext, |
const QByteArray & | privateKey, | ||
const QByteArray & | ephemeral, | ||
const QByteArray & | mac | ||
) |
Decrypt the data using Curve25519-AES-Sha256.
QUOTIENT_API QOlmExpected<Curve25519Encrypted> Quotient::curve25519AesSha2Encrypt | ( | const QByteArray & | plaintext, |
const QByteArray & | publicKey | ||
) |
Encrypt the data using Curve25519-AES-Sha256.
QUOTIENT_API QByteArray Quotient::decryptFile | ( | const QByteArray & | ciphertext, |
const EncryptedFileMetadata & | metadata | ||
) |
auto Quotient::defaultRoomFactory | ( | Connection * | c, |
const QString & | id, | ||
JoinState | js | ||
) |
The default factory to create room objects.
Just a wrapper around operator new.
Definition at line 92 of file connection.h.
auto Quotient::defaultUserFactory | ( | Connection * | c, |
const QString & | id | ||
) |
The default factory to create user objects.
Just a wrapper around operator new.
Definition at line 102 of file connection.h.
Quotient::DEFINE_SIMPLE_EVENT | ( | ReadMarkerEvent | , |
Event | , | ||
"m.fully_read" | , | ||
QString | , | ||
eventId | , | ||
"event_id" | |||
) |
Quotient::DEFINE_SIMPLE_STATE_EVENT | ( | RoomTopicEvent | , |
"m.room.topic" | , | ||
QString | , | ||
topic | , | ||
"topic" | |||
) |
QUOTIENT_API bool Quotient::ed25519VerifySignature | ( | const QString & | signingKey, |
const QJsonObject & | obj, | ||
const QString & | signature | ||
) |
checks if the signature is signed by the signing_key
|
inline |
Definition at line 29 of file converters.h.
QUOTIENT_API std::pair<EncryptedFileMetadata, QByteArray> Quotient::encryptFile | ( | const QByteArray & | plainText | ) |
|
inline |
Facility string-to-enum converter.
This is to simplify enum loading from JSON - just specialise Quotient::fromJson() and call this function from it, passing (aside from the JSON value for the enum - that must be a string, not an int) any iterable container of string'y values (const char*, QLatin1String, etc.) matching respective enum values, 0-based.
Definition at line 165 of file converters.h.
|
inline |
Facility enum-to-string converter.
This does the same as enumFromJsonString, the other way around.
enumValues
has to match those gaps (i.e., if the source enumeration is defined as { Value1 = 1, Value2 = 3, Value3 = 5 }
then enumValues
should be defined as { "", "Value1", "", "Value2", "", "Value3" }
(mind the gap at value 0, in particular). Definition at line 184 of file converters.h.
|
inline |
Cast the event pointer down in a type-safe way.
Checks that the event eptr
points to actually is of the requested type and returns a (plain) pointer to the event downcast to that type. eptr
can be either "dumb" (BaseEventT*) or "smart" (event_ptr_tt<>
). This overload doesn't affect the event ownership - if the original pointer owns the event it must outlive the downcast pointer to keep it from dangling.
|
inline |
Cast the event pointer down in a type-safe way, with moving.
Checks that the event eptr
points to actually is of the requested type; if (and only if) it is, releases the pointer, downcasts it to the requested event type and returns a new smart pointer wrapping the downcast one. Unlike the non-moving eventCast() overload, this one only accepts a smart pointer, and that smart pointer should be an rvalue (either a temporary, or as a result of std::move()). The ownership, respectively, is transferred to the new pointer; the original smart pointer is reset to nullptr, as is normal for unique_ptr<>::release()
.
eptr's
event type does not match EventT
it retains ownership after calling this overload; if it is a temporary, this normally leads to the event getting deleted along with the end of the temporary's lifetime. QUOTIENT_API FileSourceInfo Quotient::fileSourceInfoFromJson | ( | const QJsonObject & | jo, |
const FileSourceInfoKeys & | jsonKeys | ||
) |
|
inline |
Definition at line 143 of file converters.h.
QUOTIENT_API void Quotient::fillFromSecureRng | ( | std::span< byte_t > | bytes | ) |
Fill the buffer with the securely generated random bytes.
You should use this throughout Quotient where pseudo-random generators are not enough (i.e. in crypto cases). Don't use it when proper randomness is not critical; it tries to rely on system entropy that is in (somewhat) limited supply. There's no fancy stuff internally, it's just a way to unify secure RNG usage in Quotient. See the function definition for details if you want/need.
|
delete |
QUOTIENT_API void Quotient::fillJson | ( | QJsonObject & | jo, |
const FileSourceInfoKeys & | jsonKeys, | ||
const FileSourceInfo & | fsi | ||
) |
Export FileSourceInfo to a JSON object.
Depending on what is stored inside FileSourceInfo, this function will insert
|
inline |
Definition at line 119 of file converters.h.
|
inlineconstexpr |
Find a value in a container of (smart) pointers.
This is a replica of std::ranges::find that automatically applies dereferencing projection before applying the provided projection. Quotient has a few containers with pointers or wrappers for other types - think of timeline items or event_ptr_tt<>
s. This is meant to streamline searching for events that match a specific simple criterion; e.g., to find an event with a given id in a container you can now write findIndirect(events, eventId, &RoomEvent::id);
instead of having to supply your own lambda to dereference the timeline item and check the event id.
Definition at line 25 of file ranges_extras.h.
|
inlineconstexpr |
The overload of findIndirect for ranges.
Definition at line 37 of file ranges_extras.h.
|
inline |
Facility converter for flags.
This is very similar to enumFromJsonString, except that the target enumeration is assumed to be of a 'flag' kind - i.e. its values must be a power-of-two sequence starting from 1, without gaps, so exactly 1,2,4,8,16 and so on.
Definition at line 206 of file converters.h.
|
inline |
Definition at line 217 of file converters.h.
|
inline |
QDebug manipulator to setup the stream for JSON output.
Originally made to encapsulate the change in QDebug behavior in Qt 5.4 and the respective addition of QDebug::noquote(). Together with the operator<<() helper, the proposed usage is (similar to std:: I/O manipulators): qCDebug(MAIN) << formatJson << json_object; // (QJsonObject etc.)
|
inline |
Definition at line 125 of file converters.h.
|
inline |
Definition at line 137 of file converters.h.
|
inline |
Definition at line 260 of file converters.h.
|
inline |
Definition at line 18 of file roomcanonicalaliasevent.h.
|
inlinedelete |
Use fromJson<QString> and then toLatin1()/toUtf8()/... to make QByteArray
QJsonValue can only convert to QString and there's ambiguity whether conversion to QByteArray should use (fast but very limited) toLatin1() or (all encompassing and conforming to the JSON spec but slow) toUtf8().
Definition at line 231 of file converters.h.
|
inline |
Definition at line 253 of file e2ee_common.h.
|
inline |
Definition at line 247 of file e2ee_common.h.
QUOTIENT_API QUrl Quotient::getUrlFromSourceInfo | ( | const FileSourceInfo & | fsi | ) |
QUOTIENT_API SslExpected<HkdfKeys> Quotient::hkdfSha256 | ( | key_view_t | key, |
byte_view_t< 32 > | salt, | ||
byte_view_t<> | info | ||
) |
Derive a key from the input data using HKDF-SHA256.
The info parameter should be either 0 or 32 bytes long
QUOTIENT_API SslExpected<QByteArray> Quotient::hmacSha256 | ( | byte_view_t< HmacKeySize > | hmacKey, |
const QByteArray & | data | ||
) |
Calculate a MAC from the given key and data.
|
inline |
QUOTIENT_API bool Quotient::isGuestUserId | ( | const UserId & | uId | ) |
|
inline |
QUOTIENT_API bool Quotient::isStateEvent | ( | const QString & | eventTypeId | ) |
Determine whether a given event type is that of a state event.
|
inline |
Definition at line 40 of file e2ee_common.h.
Quotient::JobHandle | ( | JobT * | ) | -> JobHandle< JobT > |
|
inline |
Lift an operation into dereferenceable types (std::optional or pointers)
This is a more generic version of std::optional::and_then() that accepts an arbitrary number of arguments of any type that is dereferenceable (i.e. unary operator*() can be applied to it) and (explicitly or implicitly) convertible to bool. This allows to streamline checking for nullptr/nullopt before applying the operation on the underlying types. fn
is only invoked if all args
are "truthy" (i.e. (... && bool(args)) == true
).
fn | A callable that should accept the types stored inside optionals/pointers passed in args (NOT optionals/pointers themselves; they are unwrapped) |
fn
returns another type, lift() wraps it in std::optional; if fn
returns std::optional, that return value (or std::nullopt) is returned as is. QUOTIENT_API void Quotient::linkifyUrls | ( | QString & | htmlEscapedText | ) |
Convert what looks like a URL or a Matrix ID to an HTML hyperlink
|
inline |
|
inline |
|
inline |
|
inline |
QUOTIENT_API int Quotient::majorVersion | ( | ) |
|
inline |
Create a C structure with pre-programmed deletion logic.
This facility function creates a CStructPtr that owns the pointer returned by constructor
. The memory passed to constructor
is allocated as an array of bytes; the size of that array is determined by calling sizeFn
. Finally, since the returned pointer is owning, it also stores the corresponding CStructDeleter instance; when called at destruction of the owning pointer, this deleter first calls destructor
passing the original C pointer returned by constructor
; and then deletes the allocated array of bytes.
|
inline |
Create an event of arbitrary type from its arguments.
This should not be used to load events from JSON - use loadEvent() for that.
|
inline |
|
inline |
A factory to get a functional object matching room members against a substring.
This is a convenience wrapper to use RoomMember::matches() in standard algorithms.
Definition at line 224 of file roommember.h.
|
inlineconstexpr |
Merge the value from an optional.
Assigns the value stored at rhs
to lhs
if, and only if, rhs
is not omitted and lhs != *rhs
. lhs
can be either an optional or an ordinary variable.
true
if rhs
is not omitted and the lhs
value was different, in other words, if lhs
has changed; false
otherwise
|
inlineconstexpr |
Merge structure-like types.
Merges fields in lhs
from counterparts in rhs
. The list of fields to merge is passed in additional parameters (fields
). E.g.: \codeline mergeStruct(struct1, struct2, &Struct::field1, &Struct::field2, &Struct::field3)
lhs
that were changed QUOTIENT_API int Quotient::minorVersion | ( | ) |
|
constexpr |
Definition at line 76 of file connection.h.
|
constexpr |
|
inline |
Definition at line 156 of file eventitem.h.
QUOTIENT_API QDebug Quotient::operator<< | ( | QDebug | dbg, |
const EventStats & | es | ||
) |
QUOTIENT_API QDebug Quotient::operator<< | ( | QDebug | dbg, |
const RoomSummary & | rs | ||
) |
QDebug Quotient::operator<< | ( | QDebug | dhg, |
const DevicesList & | devicesList | ||
) |
Definition at line 17 of file accountdataevents.h.
|
inline |
Definition at line 71 of file connection.h.
Definition at line 27 of file accountdataevents.h.
Quotient::Overloads | ( | FunctorTs && | ... | ) | -> Overloads< FunctorTs... > |
QUOTIENT_API int Quotient::patchVersion | ( | ) |
|
inline |
Generate a key out of the given passphrase.
Definition at line 71 of file cryptoutils.h.
QUOTIENT_API QString Quotient::prettyPrint | ( | const QString & | plainText | ) |
Pretty-print plain text into HTML
This includes HTML escaping of <,>,",& and calling linkifyUrls()
Quotient::QT_IGNORE_DEPRECATIONS | ( | template< typename U > asKeyValueRange(U &) -> asKeyValueRange< U & >;template< typename U > asKeyValueRange(U &&) -> asKeyValueRange< U >; | ) |
A replica of std::find_first_of that returns a pair of iterators
Convenient for cases when you need to know which particular "first of" [sFirst, sLast) has been found in [first, last).
|
inline |
Definition at line 36 of file converters.h.
Quotient::requires | ( | !std::is_same_v< T, E > | ) |
A minimal subset of std::expected from C++23.
Definition at line 13 of file expected.h.
QUOTIENT_API bool Quotient::RoomMessageEvent::has< EventContent::AudioContent > | ( | ) | const |
QUOTIENT_API bool Quotient::RoomMessageEvent::has< EventContent::FileContent > | ( | ) | const |
QUOTIENT_API bool Quotient::RoomMessageEvent::has< EventContent::FileContentBase > | ( | ) | const |
QUOTIENT_API bool Quotient::RoomMessageEvent::has< EventContent::ImageContent > | ( | ) | const |
QUOTIENT_API bool Quotient::RoomMessageEvent::has< EventContent::LocationContent > | ( | ) | const |
QUOTIENT_API bool Quotient::RoomMessageEvent::has< EventContent::TextContent > | ( | ) | const |
QUOTIENT_API bool Quotient::RoomMessageEvent::has< EventContent::VideoContent > | ( | ) | const |
QUOTIENT_API QString Quotient::sanitized | ( | const QString & | plainText | ) |
Sanitize the text before showing in HTML
This does toHtmlEscaped() and removes Unicode BiDi marks.
QUOTIENT_API QString Quotient::serverPart | ( | const QString & | mxId | ) |
Extract the serverpart from MXID
QUOTIENT_API void Quotient::setUrlInSourceInfo | ( | FileSourceInfo & | fsi, |
const QUrl & | newUrl | ||
) |
QUOTIENT_API QByteArray Quotient::sign | ( | const QByteArray & | key, |
const QByteArray & | data | ||
) |
QUOTIENT_API qreal Quotient::stringToHueF | ( | const QString & | s | ) |
Hue color component of based of the hash of the string.
The implementation is based on XEP-0392: https://xmpp.org/extensions/xep-0392.html Naming and range are the same as QColor's hueF method: https://doc.qt.io/qt-5/qcolor.html#integer-vs-floating-point-precision
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 26 of file roomcanonicalaliasevent.h.
QUOTIENT_API QJsonObject Quotient::toJson | ( | const EventsWithReceipts & | ewrs | ) |
|
inline |
Definition at line 277 of file converters.h.
|
inline |
Definition at line 262 of file converters.h.
QJsonObject QUOTIENT_API Quotient::toJson | ( | const QVariantHash & | vh | ) |
|
inline |
Definition at line 307 of file converters.h.
|
inline |
Definition at line 108 of file converters.h.
|
inline |
Definition at line 564 of file converters.h.
|
inline |
Get a size of a container coerced to size_t.
This is mainly aimed at Qt containers because they have signed size; but it can also be called on other containers or even C arrays, e.g. - to spare generic code from special-casing. For Qt containers, it's a safe cast since size_t can always accommodate the range between 0 and SIZE_MAX / 2 - 1 that they support; yet compilers complain...
Definition at line 77 of file e2ee_common.h.
QUOTIENT_API bool Quotient::verifyIdentitySignature | ( | const DeviceKeys & | deviceKeys, |
const QString & | deviceId, | ||
const QString & | userId | ||
) |
QUOTIENT_API QString Quotient::versionString | ( | ) |
|
inline |
Definition at line 136 of file e2ee_common.h.
QUOTIENT_API UriResolveResult Quotient::visitResource | ( | Connection * | account, |
const Uri & | uri, | ||
std::function< UriResolveResult(User *, QString)> | userHandler, | ||
std::function< void(Room *, QString)> | roomEventHandler, | ||
std::function< void(Connection *, QString, QStringList)> | joinHandler, | ||
std::function< bool(const QUrl &)> | nonMatrixHandler | ||
) |
Resolve the resource and invoke an action on it, via function objects.
This function encapsulates the logic of resolving a Matrix identifier or URI into a Quotient object (or objects) and calling an appropriate handler on it. Unlike UriResolverBase it accepts the list of handlers from the caller; internally it's uses a minimal UriResolverBase class
account | The connection used as a context to resolve the identifier |
uri | A URI that can represent a Matrix entity |
userHandler | Called when the passed URI identifies a Matrix user |
roomEventHandler | Called when the passed URI identifies a room or an event in a room |
joinHandler | Called when the passed URI has action() == "join" and identifies a room that the user defined by the Connection argument is not a member of |
nonMatrixHandler | Called when the passed URI has type() == NonMatrix ; should return true if the URI is considered resolved, false otherwise |
|
inline |
Definition at line 60 of file cryptoutils.h.
consteval std::array<T, N> Quotient::zeroes | ( | ) |
Definition at line 62 of file cryptoutils.h.
|
constexpr |
|
constexpr |
Definition at line 22 of file cryptoutils.h.
|
constexpr |
Definition at line 23 of file cryptoutils.h.
|
inlineconstexpr |
Definition at line 26 of file e2ee_common.h.
|
inlineconstexpr |
Definition at line 22 of file e2ee_common.h.
|
inlineconstexpr |
Definition at line 20 of file eventcontent.h.
concept Quotient::BoundResultHandler |
Definition at line 10 of file jobhandle.h.
|
inlineconstexpr |
Definition at line 10 of file encryptedevent.h.
|
inlineconstexpr |
|
inlineconstexpr |
Definition at line 31 of file e2ee_common.h.
|
constexpr |
Definition at line 21 of file cryptoutils.h.
|
inlineconstexpr |
Definition at line 12 of file encryptedevent.h.
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
Definition at line 30 of file e2ee_common.h.
Definition at line 37 of file accountdataevents.h.
concept Quotient::EventClass = std::derived_from<EventT, BaseEventT> |
|
inlineconstexpr |
Definition at line 12 of file roomevent.h.
|
inlineconstexpr |
Definition at line 11 of file accountdataevents.h.
|
constexpr |
Definition at line 90 of file function_traits.h.
|
inlineconstexpr |
Definition at line 21 of file eventcontent.h.
|
inlineconstexpr |
Definition at line 22 of file eventcontent.h.
|
inlineconstexpr |
Definition at line 15 of file syncdata.h.
|
constexpr |
Definition at line 24 of file cryptoutils.h.
|
inlineconstexpr |
Definition at line 78 of file keyverificationevent.h.
|
inlineconstexpr |
Definition at line 79 of file keyverificationevent.h.
|
inlineconstexpr |
Definition at line 23 of file eventcontent.h.
|
constexpr |
Definition at line 456 of file converters.h.
m Quotient::ignored_user_list |
Definition at line 37 of file accountdataevents.h.
m Quotient::ignoredUsers |
Definition at line 38 of file accountdataevents.h.
|
inlineconstexpr |
Definition at line 24 of file eventcontent.h.
|
inlineconstexpr |
Definition at line 12 of file eventrelation.h.
|
constexpr |
Definition at line 87 of file quotient_common.h.
concept Quotient::Keyed_State_Event = EvT::needsStateKey |
Definition at line 117 of file stateevent.h.
concept Quotient::Keyed_State_Fn = EvT::needsStateKey |
Definition at line 19 of file roomstateview.h.
concept Quotient::Keyless_State_Event = !EvT::needsStateKey |
Definition at line 142 of file stateevent.h.
concept Quotient::Keyless_State_Fn = !EvT::needsStateKey |
Definition at line 22 of file roomstateview.h.
|
inlineconstexpr |
Definition at line 12 of file accountdataevents.h.
|
inlineconstexpr |
Definition at line 35 of file e2ee_common.h.
|
constexpr |
Definition at line 68 of file quotient_common.h.
|
inlineconstexpr |
Definition at line 14 of file syncdata.h.
|
constexpr |
Definition at line 16 of file omittable.h.
|
inlineconstexpr |
Definition at line 34 of file e2ee_common.h.
|
inlineconstexpr |
Definition at line 13 of file syncdata.h.
m room Quotient::pinned_events |
Definition at line 27 of file simplestateevents.h.
m room Quotient::pinnedEvents |
Definition at line 28 of file simplestateevents.h.
|
inlineconstexpr |
Definition at line 10 of file stateevent.h.
|
constexpr |
m Quotient::QSet< QString > |
Definition at line 37 of file accountdataevents.h.
m room Quotient::QStringList |
Definition at line 28 of file simplestateevents.h.
|
inlineconstexpr |
Definition at line 15 of file roomevent.h.
|
inlineconstexpr |
Definition at line 10 of file eventrelation.h.
|
inlineconstexpr |
Definition at line 11 of file eventrelation.h.
concept Quotient::ResultHandler = BoundResultHandler<FnT, JobT> || std::is_member_function_pointer_v<FnT> |
Definition at line 14 of file jobhandle.h.
|
inlineconstexpr |
Definition at line 13 of file roomevent.h.
|
constexpr |
Definition at line 117 of file quotient_common.h.
|
inlineconstexpr |
Definition at line 28 of file e2ee_common.h.
|
inlineconstexpr |
Definition at line 24 of file e2ee_common.h.
|
inlineconstexpr |
Definition at line 27 of file e2ee_common.h.
|
inlineconstexpr |
Definition at line 23 of file e2ee_common.h.
|
inlineconstexpr |
Definition at line 10 of file keyverificationevent.h.
|
inlineconstexpr |
|
inlineconstexpr |
Definition at line 11 of file encryptedevent.h.
|
inlineconstexpr |
Definition at line 13 of file accountdataevents.h.
|
inlineconstexpr |
Definition at line 13 of file encryptedevent.h.
|
inlineconstexpr |
Definition at line 32 of file e2ee_common.h.
|
inlineconstexpr |
Definition at line 14 of file roomevent.h.
|
constexpr |
Definition at line 37 of file e2ee_common.h.
|
constexpr |
Definition at line 80 of file keyverificationevent.h.
|
inlineconstexpr |
Definition at line 12 of file syncdata.h.