libQuotient
A Qt library for building matrix clients
Quotient Namespace Reference

Namespaces

 EventContent
 
 EventStatus
 
 FileMetadataMap
 
 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< Omittable< T > >
 
struct  JsonArrayConverter
 
struct  JsonConverter< std::vector< T > >
 
struct  JsonConverter< std::array< T, N > >
 
struct  JsonConverter< QVector< T > >
 
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  BanJob
 Ban a user in the room. More...
 
class  UnbanJob
 Unban a user from the room. More...
 
class  GetCapabilitiesJob
 Gets information about the server's capabilities. More...
 
struct  JsonObjectConverter< GetCapabilitiesJob::ChangePasswordCapability >
 
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
 
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  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  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
 Reports an event 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::ChildRoomsChunk >
 
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  GetRoomTagsJob
 List the tags for a room. More...
 
struct  JsonObjectConverter< GetRoomTagsJob::Tag >
 
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  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  EventItemBase
 
class  TimelineItem
 
class  PendingEventItem
 
struct  TagRecord
 
struct  JsonObjectConverter< TagRecord >
 
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
 
struct  EventTypeRegistry
 
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
 
class  KeyVerificationReadyEvent
 
class  KeyVerificationStartEvent
 Begins a key verification process. More...
 
class  KeyVerificationAcceptEvent
 
class  KeyVerificationCancelEvent
 
class  KeyVerificationKeyEvent
 
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
 
class  RoomPowerLevelsEvent
 
class  RoomTombstoneEvent
 
class  RoomAliasesEvent
 
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...
 
class  Expected
 A minimal subset of std::expected from C++23. More...
 
struct  function_traits
 Determine traits of an arbitrary function/lambda/functor. More...
 
struct  function_traits< ReturnT(ArgTs...)>
 
struct  RequestEmailValidation
 
struct  JsonObjectConverter< RequestEmailValidation >
 
struct  RequestMsisdnValidation
 
struct  JsonObjectConverter< RequestMsisdnValidation >
 
class  BaseJob
 
class  DownloadFileJob
 
class  MediaThumbnailJob
 
class  RequestData
 
class  SyncJob
 
struct  EmojiEntry
 
class  KeyVerificationSession
 
class  MxcReply
 
class  NetworkAccessManager
 
class  NetworkSettings
 
class  Omittable
 
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  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
 An equivalent of std::hash for QTypes to enable std::unordered_map<QType, ...> 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...
 

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 DirectChatUsersMap = QMultiHash< QString, User * >
 
using IgnoredUsersList = IgnoredUsersEvent::value_type
 
using OneTimeKeys = QHash< QString, std::variant< QString, SignedOneTimeKey > >
 
using QOlmInboundGroupSessionPtr = std::unique_ptr< QOlmInboundGroupSession >
 
using TagsMap = QHash< QString, TagRecord >
 
using CallEventBase = CallEvent
 
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 EventsWithReceipts = QVector< ReceiptsForEvent >
 
using RoomEventPtr = event_ptr_tt< RoomEvent >
 
using RoomEvents = EventsArray< RoomEvent >
 
using RoomEventsRange = Range< RoomEvents >
 
using MembershipType = Membership
 
using MessageEventType = RoomMessageEvent::MsgType
 
using RoomPinnedEvent = RoomPinnedEventsEvent
 
using StateEventBase = StateEvent
 
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 >
 
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...
 

Enumerations

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...
 
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 >
EnumT enumFromJsonString (const QString &s, const EnumStringValuesT &enumValues, EnumT defaultValue)
 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 >
FlagT flagFromJsonString (const QString &s, const FlagStringValuesT &flagValues, FlagT defaultValue=FlagT(0U))
 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 ValT >
void addParam (ContT &container, const QString &key, ValT &&value)
 
auto toSnakeCase (QLatin1String s)
 
bool isSupportedAlgorithm (const QString &algorithm)
 
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)
 
bool operator< (TagRecord lhs, TagRecord rhs)
 
template<typename EventT >
EventT * rawPtr (const event_ptr_tt< EventT > &ptr)
 
template<typename TargetEventT , typename EventT >
TargetEventT * weakPtrCast (const event_ptr_tt< EventT > &ptr)
 Unwrap a plain pointer and downcast it to the specified type. More...
 
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)
 
template<EventClass BaseT, typename... FnTs>
auto visit (const BaseT &event, FnTs &&... fns)
 
StateEventPtr eventLoaderH (EventLoaderH &)
 
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 std::array< QLatin1String, 2 > &jsonKeys, const FileSourceInfo &fsi)
 Export FileSourceInfo to a JSON object. More...
 
template<>
QUOTIENT_API EventsWithReceipts fromJson (const QJsonObject &json)
 
QUOTIENT_API QJsonObject toJson (const EventsWithReceipts &ewrs)
 
template<>
auto toJson (const EventContent::AliasesEventContent &c)
 
 DEFINE_SIMPLE_STATE_EVENT (RoomTopicEvent, "m.room.topic", QString, topic, "topic") DEFINE_SIMPLE_STATE_EVENT(RoomPinnedEventsEvent
 
QJsonObject basicStateEventJson (const QString &matrixTypeId, const QJsonObject &content, const QString &stateKey={})
 
QUOTIENT_API QDebug operator<< (QDebug dbg, const EventStats &es)
 
bool QUOTIENT_API isJobPending (BaseJob *job)
 
template<typename FnT >
auto lift (FnT &&fn, auto &&... args)
 Lift an operation into dereferenceable types (Omittables or pointers) More...
 
template<typename T >
 Omittable (T &&) -> Omittable< T >
 
template<typename T1 , typename T2 >
auto merge (T1 &lhs, const std::optional< T2 > &rhs) -> std::enable_if_t< std::is_assignable_v< T1 &, const T2 & >, bool >
 Merge the value from an optional This is an adaptation of Omittable::merge() to the case when the value on the left hand side is not an Omittable. More...
 
auto connectUntil (auto *sender, auto signal, auto *context, auto 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...
 
void swap (ReadReceipt &lhs, ReadReceipt &rhs)
 
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...
 
constexpr auto operator""_ls (const char *s, std::size_t size)
 
template<typename U >
 asKeyValueRange (U &) -> asKeyValueRange< U & >
 
template<typename U >
 asKeyValueRange (U &&) -> asKeyValueRange< U >
 
template<typename InputIt , typename ForwardIt , typename 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 (const QString &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 ()
 
QUOTIENT_API bool encryptionSupported ()
 
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...
 

Variables

QUOTIENT_API AccountRegistry Accounts
 
constexpr bool IfNotEmpty = false
 
constexpr auto AlgorithmKeyL = "algorithm"_ls
 
constexpr auto RotationPeriodMsKeyL = "rotation_period_ms"_ls
 
constexpr auto RotationPeriodMsgsKeyL = "rotation_period_msgs"_ls
 
constexpr auto AlgorithmKey = "algorithm"_ls
 
constexpr auto RotationPeriodMsKey = "rotation_period_ms"_ls
 
constexpr auto RotationPeriodMsgsKey = "rotation_period_msgs"_ls
 
constexpr auto Ed25519Key = "ed25519"_ls
 
constexpr auto Curve25519Key = "curve25519"_ls
 
constexpr auto SignedCurve25519Key = "signed_curve25519"_ls
 
constexpr auto OlmV1Curve25519AesSha2AlgoKey = "m.olm.v1.curve25519-aes-sha2"_ls
 
constexpr auto MegolmV1AesSha2AlgoKey = "m.megolm.v1.aes-sha2"_ls
 
constexpr std::array SupportedAlgorithms
 
constexpr auto FavouriteTag = "m.favourite"_ls
 
constexpr auto LowPriorityTag = "m.lowpriority"_ls
 
constexpr auto ServerNoticeTag = "m.server_notice"_ls
 
constexpr auto CiphertextKey = "ciphertext"_ls
 
constexpr auto SenderKeyKey = "sender_key"_ls
 
constexpr auto DeviceIdKey = "device_id"_ls
 
constexpr auto SessionIdKey = "session_id"_ls
 
constexpr auto TypeKey = "type"_ls
 
constexpr auto BodyKey = "body"_ls
 
constexpr auto ContentKey = "content"_ls
 
constexpr auto EventIdKey = "event_id"_ls
 
constexpr auto SenderKey = "sender"_ls
 
constexpr auto RoomIdKey = "room_id"_ls
 
constexpr auto UnsignedKey = "unsigned"_ls
 
constexpr auto RedactedCauseKey = "redacted_because"_ls
 
constexpr auto PrevContentKey = "prev_content"_ls
 
constexpr auto StateKeyKey = "state_key"_ls
 
constexpr auto TypeKeyL = TypeKey
 
constexpr auto BodyKeyL = BodyKey
 
constexpr auto ContentKeyL = ContentKey
 
constexpr auto EventIdKeyL = EventIdKey
 
constexpr auto SenderKeyL = SenderKey
 
constexpr auto RoomIdKeyL = RoomIdKey
 
constexpr auto UnsignedKeyL = UnsignedKey
 
constexpr auto RedactedCauseKeyL = RedactedCauseKey
 
constexpr auto PrevContentKeyL = PrevContentKey
 
constexpr auto StateKeyKeyL = StateKeyKey
 
template<typename EventT , typename BaseEventT = Event>
concept EventClass = std::is_base_of_v<BaseEventT, EventT>
 
constexpr auto RelatesToKey = "m.relates_to"_ls
 
constexpr auto RelTypeKey = "rel_type"_ls
 
constexpr auto SasV1Method = "m.sas.v1"_ls
 
constexpr auto HmacSha256Code = "hkdf-hmac-sha256"_ls
 
constexpr auto HmacSha256V2Code = "hkdf-hmac-sha256.v2"_ls
 
constexpr std::array SupportedMacs { HmacSha256Code, HmacSha256V2Code }
 
m room pinned_events
 
m room QStringList
 
m room pinnedEvents
 
constexpr auto RoomAliasesEventKey = "aliases"_ls
 
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
 
constexpr auto none = std::nullopt
 
constexpr std::array MembershipStrings
 
constexpr std::array JoinStateStrings
 
constexpr std::array RoomTypeStrings { "m.space"_ls }
 
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"_ls
 
constexpr auto PartiallyReadCountKey = "x-quotient.since_fully_read_count"_ls
 
constexpr auto NewUnreadCountKey = "org.matrix.msc2654.unread_count"_ls
 
constexpr auto HighlightCountKey = "highlight_count"_ls
 
constexpr auto E2EE_Enabled
 Compile-time constant to determine whether the library is compiled with E2EE. More...
 
constexpr qint64 ProfilerMinNsecs
 

Typedef Documentation

◆ CallEventBase

Definition at line 24 of file callevents.h.

◆ CStructPtr

template<typename T >
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.

See also
makeCStruct

Definition at line 250 of file util.h.

◆ DirectChatsMap

using Quotient::DirectChatsMap = typedef QMultiHash<const User*, QString>

Definition at line 110 of file connection.h.

◆ DirectChatUsersMap

using Quotient::DirectChatUsersMap = typedef QMultiHash<QString, User*>

Definition at line 111 of file connection.h.

◆ event_ptr_tt

template<typename EventT >
using Quotient::event_ptr_tt = typedef std::unique_ptr<EventT>

Definition at line 14 of file event.h.

◆ event_type_t

using Quotient::event_type_t = typedef QLatin1String

Definition at line 53 of file event.h.

◆ EventPtr

Definition at line 414 of file event.h.

◆ Events

Definition at line 418 of file event.h.

◆ EventsArray

template<EventClass EventT>
using Quotient::EventsArray = typedef std::vector<event_ptr_tt<EventT> >

Definition at line 417 of file event.h.

◆ EventsWithReceipts

Definition at line 20 of file receiptevent.h.

◆ FileSourceInfo

using Quotient::FileSourceInfo = typedef std::variant<QUrl, EncryptedFileMetadata>

Definition at line 72 of file filesourceinfo.h.

◆ fn_arg_t

template<typename FnT , int ArgN = 0>
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.

◆ IgnoredUsersList

using Quotient::IgnoredUsersList = typedef IgnoredUsersEvent::value_type

Definition at line 112 of file connection.h.

◆ ImplPtr

template<typename ImplType , typename TypeToDelete = ImplType>
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

Definition at line 191 of file util.h.

◆ LoginFlow

Definition at line 59 of file connection.h.

◆ MembershipType

Definition at line 30 of file roommemberevent.h.

◆ MessageEventType

Definition at line 107 of file roommessageevent.h.

◆ OneTimeKeys

using Quotient::OneTimeKeys = typedef QHash<QString, std::variant<QString, SignedOneTimeKey> >

Definition at line 251 of file e2ee_common.h.

◆ QOlmInboundGroupSessionPtr

Definition at line 60 of file qolminboundsession.h.

◆ room_factory_t

using Quotient::room_factory_t = typedef std::function<Room*(Connection*, const QString&, JoinState)>

Definition at line 82 of file connection.h.

◆ RoomEventPtr

Definition at line 73 of file roomevent.h.

◆ RoomEvents

Definition at line 74 of file roomevent.h.

◆ RoomEventsRange

Definition at line 75 of file roomevent.h.

◆ RoomPinnedEvent

using Quotient::RoomPinnedEvent = typedef RoomPinnedEventsEvent

Definition at line 30 of file simplestateevents.h.

◆ StateEventBase

Definition at line 47 of file stateevent.h.

◆ StateEventKey

using Quotient::StateEventKey = typedef std::pair<QString, QString>

A combination of event type and state key uniquely identifies a piece of state in Matrix.

See also
https://matrix.org/docs/spec/client_server/unstable.html#types-of-room-events

Definition at line 66 of file stateevent.h.

◆ StateEventPtr

Definition at line 49 of file stateevent.h.

◆ StateEvents

Definition at line 50 of file stateevent.h.

◆ SyncDataList

using Quotient::SyncDataList = typedef std::vector<SyncRoomData>

Definition at line 85 of file syncdata.h.

◆ TagsMap

using Quotient::TagsMap = typedef QHash<QString, TagRecord>

Definition at line 46 of file accountdataevents.h.

◆ UnorderedMap

template<typename KeyT , typename ValT >
using Quotient::UnorderedMap = typedef std::unordered_map<KeyT, ValT, HashQ<KeyT> >

A wrapper around std::unordered_map compatible with types that have qHash.

Definition at line 78 of file util.h.

◆ user_factory_t

using Quotient::user_factory_t = typedef std::function<User*(Connection*, const QString&)>

Definition at line 84 of file connection.h.

Enumeration Type Documentation

◆ EncryptionType

enum Quotient::EncryptionType : uint8_t
strong
Enumerator
MegolmV1AesSha2 
Undefined 

Definition at line 119 of file quotient_common.h.

◆ HttpVerb

enum Quotient::HttpVerb
strong
Enumerator
Get 
Put 
Post 
Delete 

Definition at line 23 of file basejob.h.

◆ JoinState

enum Quotient::JoinState : std::underlying_type_t< Membership >
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.

See also
SyncData
Enumerator
Invalid 
Join 
Leave 
Invite 
Knock 

Definition at line 78 of file quotient_common.h.

◆ Membership

enum Quotient::Membership : uint16_t
strong

Membership states.

These are used for member events. The names here are case-insensitively equal to state names used on the wire.

See also
MemberEventContent, RoomMemberEvent
Enumerator
Invalid 
Join 
Leave 
Invite 
Knock 
Ban 
Undefined 

Definition at line 55 of file quotient_common.h.

◆ RoomType

enum Quotient::RoomType : uint8_t
strong
Enumerator
Space 
Undefined 

Definition at line 111 of file quotient_common.h.

◆ RunningPolicy

Network job running policy flags.

So far only background/foreground flags are available.

See also
Connection::callApi, Connection::run
Enumerator
ForegroundRequest 
BackgroundRequest 

Definition at line 96 of file quotient_common.h.

◆ UriResolveResult

The result of URI resolution using UriResolver.

See also
UriResolver
Enumerator
StillResolving 
UriResolved 
CouldNotResolve 
IncorrectAction 
InvalidUri 
NoAccount 

Definition at line 101 of file quotient_common.h.

Function Documentation

◆ acquireImpl()

template<typename ImplType , typename TypeToDelete = ImplType>
ImplPtr<ImplType, TypeToDelete> Quotient::acquireImpl ( ImplType *  from)
inline

Definition at line 221 of file util.h.

◆ addParam()

template<bool Force = true, typename ContT , typename ValT >
void Quotient::addParam ( ContT &  container,
const QString &  key,
ValT &&  value 
)
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:

  • it has a method isEmpty() and value.isEmpty() == true, or
  • it's an Omittable<> and value.omitted() == true.

If container is a QUrlQuery, an attempt to fit value into it is made as follows:

  • if 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;
  • if 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;
  • if value is a bool, its OpenAPI (i.e. JSON) representation is added to the query (true or false, respectively).
Template Parameters
Forceadd 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 549 of file converters.h.

◆ asKeyValueRange() [1/2]

template<typename U >
Quotient::asKeyValueRange ( U &&  ) -> asKeyValueRange< U >

◆ asKeyValueRange() [2/2]

template<typename U >
Quotient::asKeyValueRange ( U &  ) -> asKeyValueRange< U & >

◆ basicStateEventJson()

QJsonObject Quotient::basicStateEventJson ( const QString &  matrixTypeId,
const QJsonObject &  content,
const QString &  stateKey = {} 
)
inline

Definition at line 53 of file stateevent.h.

◆ cacheLocation()

QUOTIENT_API QString Quotient::cacheLocation ( const QString &  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.

Parameters
dirNamepath to cache directory relative to the standard cache path

◆ checkResource()

UriResolveResult Quotient::checkResource ( Connection account,
const Uri uri 
)
inline

Check that the resource is resolvable with no action on it.

Definition at line 116 of file uriresolver.h.

◆ connectSingleShot()

template<typename ContextT , typename SlotT >
auto Quotient::connectSingleShot ( auto *  sender,
auto  signal,
ContextT *  context,
SlotT  slot,
Qt::ConnectionType  connType = Qt::AutoConnection 
)
inline

Create a connection that self-disconnects after triggering on the signal.

Definition at line 72 of file qt_connection_util.h.

◆ connectUntil()

auto Quotient::connectUntil ( auto *  sender,
auto  signal,
auto *  context,
auto  smartSlot,
Qt::ConnectionType  connType = Qt::AutoConnection 
)
inline

Create a connection that self-disconnects when its slot returns true.

A slot accepted by connectUntil() is different from classic Qt slots in that its return value must be bool, not void. Because of that different signature connectUntil() doesn't accept member functions in the way QObject::connect or Quotient::connectSingleShot do; you should pass a lambda or a pre-bound member function to it.

Returns
whether the connection should be dropped; false means that the connection remains; upon returning true, the slot is disconnected from the signal.

Definition at line 62 of file qt_connection_util.h.

◆ defaultRoomFactory()

template<typename T = Room>
auto Quotient::defaultRoomFactory ( Connection c,
const QString &  id,
JoinState  js 
)

The default factory to create room objects.

Just a wrapper around operator new.

See also
Connection::setRoomFactory, Connection::setRoomType

Definition at line 91 of file connection.h.

◆ defaultUserFactory()

template<typename T = User>
auto Quotient::defaultUserFactory ( Connection c,
const QString &  id 
)

The default factory to create user objects.

Just a wrapper around operator new.

See also
Connection::setUserFactory, Connection::setUserType

Definition at line 101 of file connection.h.

◆ DEFINE_SIMPLE_STATE_EVENT()

Quotient::DEFINE_SIMPLE_STATE_EVENT ( RoomTopicEvent  ,
"m.room.topic"  ,
QString  ,
topic  ,
"topic"   
)

◆ ed25519VerifySignature()

QUOTIENT_API bool Quotient::ed25519VerifySignature ( const QString &  signingKey,
const QJsonObject &  obj,
const QString &  signature 
)

checks if the signature is signed by the signing_key

◆ encryptionSupported()

QUOTIENT_API bool Quotient::encryptionSupported ( )

◆ enumFromJsonString()

template<typename EnumT , typename EnumStringValuesT >
EnumT Quotient::enumFromJsonString ( const QString &  s,
const EnumStringValuesT &  enumValues,
EnumT  defaultValue 
)

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.

See also
enumToJsonString

Definition at line 150 of file converters.h.

◆ enumToJsonString()

template<typename EnumT , typename EnumStringValuesT >
QString Quotient::enumToJsonString ( EnumT  v,
const EnumStringValuesT &  enumValues 
)

Facility enum-to-string converter.

This does the same as enumFromJsonString, the other way around.

Note
The source enumeration must not have gaps in values, or 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).
See also
enumFromJsonString

Definition at line 173 of file converters.h.

◆ eventCast() [1/2]

template<EventClass EventT, typename BasePtrT >
auto Quotient::eventCast ( const BasePtrT &  eptr) -> decltype(static_cast<EventT*>(std::to_address(eptr)))
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.

Definition at line 595 of file event.h.

◆ eventCast() [2/2]

template<EventClass EventT, typename BaseEventT >
auto Quotient::eventCast ( event_ptr_tt< BaseEventT > &&  eptr)
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().

Note
If 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.

Definition at line 618 of file event.h.

◆ eventLoaderH()

StateEventPtr Quotient::eventLoaderH ( EventLoaderH &  )

◆ fillFromJson()

template<typename T >
void Quotient::fillFromJson ( const QJsonValue &  jv,
T &  pod 
)
inline

Definition at line 126 of file converters.h.

◆ fillJson() [1/3]

template<>
void Quotient::fillJson ( QJsonObject &  ,
const FileSourceInfo  
)
delete

◆ fillJson() [2/3]

QUOTIENT_API void Quotient::fillJson ( QJsonObject &  jo,
const std::array< QLatin1String, 2 > &  jsonKeys,
const FileSourceInfo fsi 
)

Export FileSourceInfo to a JSON object.

Depending on what is stored inside FileSourceInfo, this function will insert

  • a key-to-string pair where key is taken from jsonKeys[0] and the string is the URL, if FileSourceInfo stores a QUrl;
  • a key-to-object mapping where key is taken from jsonKeys[1] and the object is the result of converting EncryptedFileMetadata to JSON, if FileSourceInfo stores EncryptedFileMetadata

◆ fillJson() [3/3]

template<typename T >
void Quotient::fillJson ( QJsonObject &  json,
const T &  data 
)
inline

Definition at line 102 of file converters.h.

◆ findFirstOf()

template<typename InputIt , typename ForwardIt , typename Pred >
std::pair<InputIt, ForwardIt> Quotient::findFirstOf ( InputIt  first,
InputIt  last,
ForwardIt  sFirst,
ForwardIt  sLast,
Pred  pred 
)
inline

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).

Definition at line 172 of file util.h.

◆ flagFromJsonString()

template<typename FlagT , typename FlagStringValuesT >
FlagT Quotient::flagFromJsonString ( const QString &  s,
const FlagStringValuesT &  flagValues,
FlagT  defaultValue = FlagT(0U) 
)

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.

Note
Unlike enumFromJsonString, the values start from 1 and not from 0, with 0 being used for an invalid value by default.
This function does not support flag combinations.
See also
QUO_DECLARE_FLAGS, QUO_DECLARE_FLAGS_NS

Definition at line 196 of file converters.h.

◆ flagToJsonString()

template<typename FlagT , typename FlagStringValuesT >
QString Quotient::flagToJsonString ( FlagT  v,
const FlagStringValuesT &  flagValues 
)

Definition at line 211 of file converters.h.

◆ formatJson()

QDebug Quotient::formatJson ( QDebug  dbg)
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.)

Definition at line 340 of file util.h.

◆ fromJson() [1/5]

template<typename PodT , typename JsonT >
PodT Quotient::fromJson ( const JsonT &  json)
inline

Definition at line 108 of file converters.h.

◆ fromJson() [2/5]

template<typename JsonT , typename PodT >
void Quotient::fromJson ( const JsonT &  json,
PodT &  pod 
)
inline

Definition at line 120 of file converters.h.

◆ fromJson() [3/5]

template<>
QJsonArray Quotient::fromJson ( const QJsonDocument &  jd)
inline

Definition at line 259 of file converters.h.

◆ fromJson() [4/5]

template<>
EventContent::AliasesEventContent Quotient::fromJson ( const QJsonObject &  json)
inline

Definition at line 18 of file roomcanonicalaliasevent.h.

◆ fromJson() [5/5]

template<>
QVariantHash QUOTIENT_API Quotient::fromJson ( const QJsonValue &  jv)
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 230 of file converters.h.

◆ getUrlFromSourceInfo()

QUOTIENT_API QUrl Quotient::getUrlFromSourceInfo ( const FileSourceInfo fsi)

◆ is()

template<EventClass EventT>
bool Quotient::is ( const Event e)
inline

Definition at line 569 of file event.h.

◆ isJobPending()

bool QUOTIENT_API Quotient::isJobPending ( BaseJob job)
inline

Definition at line 482 of file basejob.h.

◆ isSupportedAlgorithm()

bool Quotient::isSupportedAlgorithm ( const QString &  algorithm)
inline

Definition at line 43 of file e2ee_common.h.

◆ lift()

template<typename FnT >
auto Quotient::lift ( FnT &&  fn,
auto &&...  args 
)
inline

Lift an operation into dereferenceable types (Omittables or pointers)

This is a more generic version of Omittable::then() that extends to an arbitrary number of arguments of any type that is dereferenceable (unary operator*() can be applied to it) and (explicitly or implicitly) convertible to bool. This allows to streamline checking for nullptr/none before applying the operation on the underlying types. fn is only invoked if all args are "truthy" (i.e. (... && bool(args)) == true).

Parameters
fnA callable that should accept the types stored inside Omittables/pointers passed in args
Returns
Always an Omittable: if fn returns another type, lift() wraps it in an Omittable; if fn returns an Omittable, that return value (or none) is returned as is.

Definition at line 30 of file omittable.h.

◆ linkifyUrls()

QUOTIENT_API void Quotient::linkifyUrls ( QString &  htmlEscapedText)

Convert what looks like a URL or a Matrix ID to an HTML hyperlink

◆ loadEvent() [1/2]

template<EventClass EventT>
event_ptr_tt<EventT> Quotient::loadEvent ( const QJsonObject &  fullJson)
inline

Create an event with proper type from a JSON object.

Use this factory template to detect the type from the JSON object contents (the detected event type should derive from the template parameter type) and create an event object of that type.

Definition at line 235 of file event.h.

◆ loadEvent() [2/2]

template<EventClass EventT>
event_ptr_tt<EventT> Quotient::loadEvent ( const QString &  matrixType,
const auto &...  otherBasicJsonParams 
)
inline

Create an event from a type string and content JSON.

Use this template to resolve the C++ type from the Matrix type string in matrixType and create an event of that type by passing all parameters to EventT::basicJson().

Definition at line 247 of file event.h.

◆ majorVersion()

QUOTIENT_API int Quotient::majorVersion ( )

◆ makeCStruct()

template<typename T >
auto Quotient::makeCStruct ( T *(*)(void *)  constructor,
size_t(*)()  sizeFn,
auto  destructor 
)
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.

Definition at line 263 of file util.h.

◆ makeEvent()

template<EventClass EventT, typename... ArgTs>
event_ptr_tt<EventT> Quotient::makeEvent ( ArgTs &&...  args)
inline

Create an event of arbitrary type from its arguments.

This should not be used to load events from JSON - use loadEvent() for that.

See also
loadEvent

Definition at line 215 of file event.h.

◆ makeImpl()

template<typename ImplType , typename TypeToDelete = ImplType, typename... ArgTs>
ImplPtr<ImplType, TypeToDelete> Quotient::makeImpl ( ArgTs &&...  args)
inline

make_unique for ImplPtr

Since std::make_unique is not compatible with ImplPtr, this should be used in constructors of frontend classes to create implementation instances.

Definition at line 212 of file util.h.

◆ merge()

template<typename T1 , typename T2 >
auto Quotient::merge ( T1 &  lhs,
const std::optional< T2 > &  rhs 
) -> std::enable_if_t<std::is_assignable_v<T1&, const T2&>, bool>
inline

Merge the value from an optional This is an adaptation of Omittable::merge() to the case when the value on the left hand side is not an Omittable.

Returns
true if rhs is not omitted and the lhs value was different, in other words, if lhs has changed; false otherwise

Definition at line 185 of file omittable.h.

◆ minorVersion()

QUOTIENT_API int Quotient::minorVersion ( )

◆ mostSpecificMetaType()

template<EventClass EventT>
constexpr const auto& Quotient::mostSpecificMetaType ( )
constexpr

Definition at line 221 of file event.h.

◆ Omittable()

template<typename T >
Quotient::Omittable ( T &&  ) -> Omittable< T >

◆ operator!=()

bool Quotient::operator!= ( const LoginFlow lhs,
const LoginFlow rhs 
)
inline

Definition at line 75 of file connection.h.

◆ operator""_ls()

constexpr auto Quotient::operator""_ls ( const char *  s,
std::size_t  size 
)
constexpr

Definition at line 80 of file util.h.

◆ operator<()

bool Quotient::operator< ( TagRecord  lhs,
TagRecord  rhs 
)
inline

Definition at line 17 of file accountdataevents.h.

◆ operator<<() [1/4]

QDebug& Quotient::operator<< ( QDebug &  d,
const TimelineItem ti 
)
inline

Definition at line 144 of file eventitem.h.

◆ operator<<() [2/4]

QUOTIENT_API QDebug Quotient::operator<< ( QDebug  dbg,
const EventStats es 
)

◆ operator<<() [3/4]

QDebug Quotient::operator<< ( QDebug  dbg,
const RoomSummary rs 
)

◆ operator<<() [4/4]

QDebug Quotient::operator<< ( QDebug  dhg,
const DevicesList devicesList 
)

◆ operator==() [1/2]

bool Quotient::operator== ( const AbstractEventMetaType lhs,
const AbstractEventMetaType rhs 
)
inline

Definition at line 119 of file event.h.

◆ operator==() [2/2]

bool Quotient::operator== ( const LoginFlow lhs,
const LoginFlow rhs 
)
inline

Definition at line 70 of file connection.h.

◆ Overloads()

template<typename... FunctorTs>
Quotient::Overloads ( FunctorTs &&  ...) -> Overloads< FunctorTs... >

◆ patchVersion()

QUOTIENT_API int Quotient::patchVersion ( )

◆ prettyPrint()

QUOTIENT_API QString Quotient::prettyPrint ( const QString &  plainText)

Pretty-print plain text into HTML

This includes HTML escaping of <,>,",& and calling linkifyUrls()

◆ rawPtr()

template<typename EventT >
EventT* Quotient::rawPtr ( const event_ptr_tt< EventT > &  ptr)
inline

Definition at line 18 of file event.h.

◆ sanitized()

QUOTIENT_API QString Quotient::sanitized ( const QString &  plainText)

Sanitize the text before showing in HTML

This does toHtmlEscaped() and removes Unicode BiDi marks.

◆ serverPart()

QUOTIENT_API QString Quotient::serverPart ( const QString &  mxId)

Extract the serverpart from MXID

◆ setUrlInSourceInfo()

QUOTIENT_API void Quotient::setUrlInSourceInfo ( FileSourceInfo fsi,
const QUrl &  newUrl 
)

◆ stringToHueF()

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

◆ swap()

void Quotient::swap ( ReadReceipt lhs,
ReadReceipt rhs 
)
inline

Definition at line 95 of file room.h.

◆ switchOnType() [1/2]

template<EventClass BaseT, typename TailT >
auto Quotient::switchOnType ( const BaseT &  event,
TailT &&  tail 
)
inline

Definition at line 635 of file event.h.

◆ switchOnType() [2/2]

template<typename FnT1 , typename... FnTs>
auto Quotient::switchOnType ( const EventClass auto &  event,
FnT1 &&  fn1,
FnTs &&...  fns 
)
inline

Definition at line 650 of file event.h.

◆ terse()

QDebug Quotient::terse ( QDebug  dbg)
inline

Suppress full qualification of enums/QFlags when logging.

Definition at line 343 of file util.h.

◆ toJson() [1/7]

template<>
auto Quotient::toJson ( const EventContent::AliasesEventContent c)
inline

Definition at line 26 of file roomcanonicalaliasevent.h.

◆ toJson() [2/7]

QUOTIENT_API QJsonObject Quotient::toJson ( const EventsWithReceipts ewrs)

◆ toJson() [3/7]

QJsonValue Quotient::toJson ( const QDate &  val)
inline

Definition at line 271 of file converters.h.

◆ toJson() [4/7]

QJsonValue Quotient::toJson ( const QDateTime &  val)
inline

Definition at line 261 of file converters.h.

◆ toJson() [5/7]

QJsonObject QUOTIENT_API Quotient::toJson ( const QVariantHash &  vh)

◆ toJson() [6/7]

template<typename... Ts>
QJsonValue Quotient::toJson ( const std::variant< Ts... > &  v)
inline

Definition at line 301 of file converters.h.

◆ toJson() [7/7]

template<typename T >
auto Quotient::toJson ( const T &  pod)
inline

Definition at line 91 of file converters.h.

◆ toSnakeCase()

auto Quotient::toSnakeCase ( QLatin1String  s)
inline

Definition at line 558 of file converters.h.

◆ verifyIdentitySignature()

QUOTIENT_API bool Quotient::verifyIdentitySignature ( const DeviceKeys deviceKeys,
const QString &  deviceId,
const QString &  userId 
)

◆ versionString()

QUOTIENT_API QString Quotient::versionString ( )

◆ visit()

template<EventClass BaseT, typename... FnTs>
auto Quotient::visit ( const BaseT &  event,
FnTs &&...  fns 
)
inline

Definition at line 660 of file event.h.

◆ visitResource()

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

Parameters
accountThe connection used as a context to resolve the identifier
uriA URI that can represent a Matrix entity
userHandlerCalled when the passed URI identifies a Matrix user
roomEventHandlerCalled when the passed URI identifies a room or an event in a room
joinHandlerCalled when the passed URI has action() == "join" and identifies a room that the user defined by the Connection argument is not a member of
nonMatrixHandlerCalled when the passed URI has type() == NonMatrix; should return true if the URI is considered resolved, false otherwise
See also
UriResolverBase, UriDispatcher

◆ weakPtrCast()

template<typename TargetEventT , typename EventT >
TargetEventT* Quotient::weakPtrCast ( const event_ptr_tt< EventT > &  ptr)
inline

Unwrap a plain pointer and downcast it to the specified type.

Definition at line 25 of file event.h.

◆ ZeroImpl()

template<typename ImplType , typename TypeToDelete = ImplType>
constexpr ImplPtr<ImplType, TypeToDelete> Quotient::ZeroImpl ( )
constexpr

Definition at line 229 of file util.h.

Variable Documentation

◆ Accounts

QUOTIENT_API AccountRegistry Quotient::Accounts
extern

◆ AlgorithmKey

constexpr auto Quotient::AlgorithmKey = "algorithm"_ls
inlineconstexpr

Definition at line 29 of file e2ee_common.h.

◆ AlgorithmKeyL

constexpr auto Quotient::AlgorithmKeyL = "algorithm"_ls
inlineconstexpr

Definition at line 25 of file e2ee_common.h.

◆ BodyKey

constexpr auto Quotient::BodyKey = "body"_ls
inlineconstexpr

Definition at line 33 of file event.h.

◆ BodyKeyL

constexpr auto Quotient::BodyKeyL = BodyKey
inlineconstexpr

Definition at line 43 of file event.h.

◆ CiphertextKey

constexpr auto Quotient::CiphertextKey = "ciphertext"_ls
inlineconstexpr

Definition at line 10 of file encryptedevent.h.

◆ ContentKey

constexpr auto Quotient::ContentKey = "content"_ls
inlineconstexpr

Definition at line 34 of file event.h.

◆ ContentKeyL

constexpr auto Quotient::ContentKeyL = ContentKey
inlineconstexpr

Definition at line 44 of file event.h.

◆ Curve25519Key

constexpr auto Quotient::Curve25519Key = "curve25519"_ls
inlineconstexpr

Definition at line 34 of file e2ee_common.h.

◆ DeviceIdKey

constexpr auto Quotient::DeviceIdKey = "device_id"_ls
inlineconstexpr

Definition at line 12 of file encryptedevent.h.

◆ E2EE_Enabled

constexpr auto Quotient::E2EE_Enabled
constexpr
Initial value:
=
false

Compile-time constant to determine whether the library is compiled with E2EE.

Definition at line 322 of file util.h.

◆ Ed25519Key

constexpr auto Quotient::Ed25519Key = "ed25519"_ls
inlineconstexpr

Definition at line 33 of file e2ee_common.h.

◆ EventClass

template<typename EventT , typename BaseEventT = Event>
concept Quotient::EventClass = std::is_base_of_v<BaseEventT, EventT>

Definition at line 71 of file event.h.

◆ EventIdKey

constexpr auto Quotient::EventIdKey = "event_id"_ls
inlineconstexpr

Definition at line 35 of file event.h.

◆ EventIdKeyL

constexpr auto Quotient::EventIdKeyL = EventIdKey
inlineconstexpr

Definition at line 45 of file event.h.

◆ FavouriteTag

constexpr auto Quotient::FavouriteTag = "m.favourite"_ls
inlineconstexpr

Definition at line 9 of file accountdataevents.h.

◆ fn_arg_count_v

template<typename FnT >
constexpr auto Quotient::fn_arg_count_v
constexpr
Initial value:
=
std::tuple_size_v<typename function_traits<FnT>::arg_types>

Definition at line 90 of file function_traits.h.

◆ HighlightCountKey

constexpr auto Quotient::HighlightCountKey = "highlight_count"_ls
inlineconstexpr

Definition at line 15 of file syncdata.h.

◆ HmacSha256Code

constexpr auto Quotient::HmacSha256Code = "hkdf-hmac-sha256"_ls
inlineconstexpr

Definition at line 75 of file keyverificationevent.h.

◆ HmacSha256V2Code

constexpr auto Quotient::HmacSha256V2Code = "hkdf-hmac-sha256.v2"_ls
inlineconstexpr

Definition at line 76 of file keyverificationevent.h.

◆ IfNotEmpty

constexpr bool Quotient::IfNotEmpty = false
constexpr

Definition at line 455 of file converters.h.

◆ JoinStateStrings

constexpr std::array Quotient::JoinStateStrings
constexpr
Initial value:

Definition at line 87 of file quotient_common.h.

◆ Keyed_State_Event

template<typename EvT >
concept Quotient::Keyed_State_Event = EvT::needsStateKey

Definition at line 126 of file stateevent.h.

◆ Keyed_State_Fn

template<typename FnT , class EvT = std::decay_t<fn_arg_t<FnT>>>
concept Quotient::Keyed_State_Fn = EvT::needsStateKey

Definition at line 19 of file roomstateview.h.

◆ Keyless_State_Event

template<typename EvT >
concept Quotient::Keyless_State_Event = !EvT::needsStateKey

Definition at line 147 of file stateevent.h.

◆ Keyless_State_Fn

template<typename FnT , class EvT = std::decay_t<fn_arg_t<FnT>>>
concept Quotient::Keyless_State_Fn = !EvT::needsStateKey

Definition at line 22 of file roomstateview.h.

◆ LowPriorityTag

constexpr auto Quotient::LowPriorityTag = "m.lowpriority"_ls
inlineconstexpr

Definition at line 10 of file accountdataevents.h.

◆ MegolmV1AesSha2AlgoKey

constexpr auto Quotient::MegolmV1AesSha2AlgoKey = "m.megolm.v1.aes-sha2"_ls
inlineconstexpr

Definition at line 38 of file e2ee_common.h.

◆ MembershipStrings

constexpr std::array Quotient::MembershipStrings
constexpr
Initial value:
{
"join"_ls, "leave"_ls, "invite"_ls, "knock"_ls, "ban"_ls
}

Definition at line 68 of file quotient_common.h.

◆ NewUnreadCountKey

constexpr auto Quotient::NewUnreadCountKey = "org.matrix.msc2654.unread_count"_ls
inlineconstexpr

Definition at line 14 of file syncdata.h.

◆ none

constexpr auto Quotient::none = std::nullopt
constexpr

Definition at line 14 of file omittable.h.

◆ OlmV1Curve25519AesSha2AlgoKey

constexpr auto Quotient::OlmV1Curve25519AesSha2AlgoKey = "m.olm.v1.curve25519-aes-sha2"_ls
inlineconstexpr

Definition at line 37 of file e2ee_common.h.

◆ PartiallyReadCountKey

constexpr auto Quotient::PartiallyReadCountKey = "x-quotient.since_fully_read_count"_ls
inlineconstexpr

Definition at line 13 of file syncdata.h.

◆ pinned_events

m room Quotient::pinned_events

Definition at line 28 of file simplestateevents.h.

◆ pinnedEvents

m room Quotient::pinnedEvents

Definition at line 29 of file simplestateevents.h.

◆ PrevContentKey

constexpr auto Quotient::PrevContentKey = "prev_content"_ls
inlineconstexpr

Definition at line 40 of file event.h.

◆ PrevContentKeyL

constexpr auto Quotient::PrevContentKeyL = PrevContentKey
inlineconstexpr

Definition at line 50 of file event.h.

◆ ProfilerMinNsecs

constexpr qint64 Quotient::ProfilerMinNsecs
constexpr
Initial value:
=
200
* 1000

Definition at line 348 of file util.h.

◆ QStringList

m room Quotient::QStringList

Definition at line 29 of file simplestateevents.h.

◆ RedactedCauseKey

constexpr auto Quotient::RedactedCauseKey = "redacted_because"_ls
inlineconstexpr

Definition at line 39 of file event.h.

◆ RedactedCauseKeyL

constexpr auto Quotient::RedactedCauseKeyL = RedactedCauseKey
inlineconstexpr

Definition at line 49 of file event.h.

◆ RelatesToKey

constexpr auto Quotient::RelatesToKey = "m.relates_to"_ls
inlineconstexpr

Definition at line 10 of file eventrelation.h.

◆ RelTypeKey

constexpr auto Quotient::RelTypeKey = "rel_type"_ls
inlineconstexpr

Definition at line 11 of file eventrelation.h.

◆ RoomAliasesEventKey

constexpr auto Quotient::RoomAliasesEventKey = "aliases"_ls
inlineconstexpr

Definition at line 34 of file simplestateevents.h.

◆ RoomIdKey

constexpr auto Quotient::RoomIdKey = "room_id"_ls
inlineconstexpr

Definition at line 37 of file event.h.

◆ RoomIdKeyL

constexpr auto Quotient::RoomIdKeyL = RoomIdKey
inlineconstexpr

Definition at line 47 of file event.h.

◆ RoomTypeStrings

constexpr std::array Quotient::RoomTypeStrings { "m.space"_ls }
constexpr

Definition at line 117 of file quotient_common.h.

◆ RotationPeriodMsgsKey

constexpr auto Quotient::RotationPeriodMsgsKey = "rotation_period_msgs"_ls
inlineconstexpr

Definition at line 31 of file e2ee_common.h.

◆ RotationPeriodMsgsKeyL

constexpr auto Quotient::RotationPeriodMsgsKeyL = "rotation_period_msgs"_ls
inlineconstexpr

Definition at line 27 of file e2ee_common.h.

◆ RotationPeriodMsKey

constexpr auto Quotient::RotationPeriodMsKey = "rotation_period_ms"_ls
inlineconstexpr

Definition at line 30 of file e2ee_common.h.

◆ RotationPeriodMsKeyL

constexpr auto Quotient::RotationPeriodMsKeyL = "rotation_period_ms"_ls
inlineconstexpr

Definition at line 26 of file e2ee_common.h.

◆ SasV1Method

constexpr auto Quotient::SasV1Method = "m.sas.v1"_ls
inlineconstexpr

Definition at line 10 of file keyverificationevent.h.

◆ SenderKey

constexpr auto Quotient::SenderKey = "sender"_ls
inlineconstexpr

Definition at line 36 of file event.h.

◆ SenderKeyKey

constexpr auto Quotient::SenderKeyKey = "sender_key"_ls
inlineconstexpr

Definition at line 11 of file encryptedevent.h.

◆ SenderKeyL

constexpr auto Quotient::SenderKeyL = SenderKey
inlineconstexpr

Definition at line 46 of file event.h.

◆ ServerNoticeTag

constexpr auto Quotient::ServerNoticeTag = "m.server_notice"_ls
inlineconstexpr

Definition at line 11 of file accountdataevents.h.

◆ SessionIdKey

constexpr auto Quotient::SessionIdKey = "session_id"_ls
inlineconstexpr

Definition at line 13 of file encryptedevent.h.

◆ SignedCurve25519Key

constexpr auto Quotient::SignedCurve25519Key = "signed_curve25519"_ls
inlineconstexpr

Definition at line 35 of file e2ee_common.h.

◆ StateKeyKey

constexpr auto Quotient::StateKeyKey = "state_key"_ls
inlineconstexpr

Definition at line 41 of file event.h.

◆ StateKeyKeyL

constexpr auto Quotient::StateKeyKeyL = StateKeyKey
inlineconstexpr

Definition at line 51 of file event.h.

◆ SupportedAlgorithms

constexpr std::array Quotient::SupportedAlgorithms
constexpr
Initial value:
constexpr auto OlmV1Curve25519AesSha2AlgoKey
Definition: e2ee_common.h:37
constexpr auto MegolmV1AesSha2AlgoKey
Definition: e2ee_common.h:38

Definition at line 40 of file e2ee_common.h.

◆ SupportedMacs

constexpr std::array Quotient::SupportedMacs { HmacSha256Code, HmacSha256V2Code }
constexpr

Definition at line 77 of file keyverificationevent.h.

◆ TypeKey

constexpr auto Quotient::TypeKey = "type"_ls
inlineconstexpr

Definition at line 32 of file event.h.

◆ TypeKeyL

constexpr auto Quotient::TypeKeyL = TypeKey
inlineconstexpr

Definition at line 42 of file event.h.

◆ UnreadNotificationsKey

constexpr auto Quotient::UnreadNotificationsKey = "unread_notifications"_ls
inlineconstexpr

Definition at line 12 of file syncdata.h.

◆ UnsignedKey

constexpr auto Quotient::UnsignedKey = "unsigned"_ls
inlineconstexpr

Definition at line 38 of file event.h.

◆ UnsignedKeyL

constexpr auto Quotient::UnsignedKeyL = UnsignedKey
inlineconstexpr

Definition at line 48 of file event.h.