73 using Result = std::variant<QXmpp::Success, QXmppError>;
75 struct DevicesResult {
83 QXmppTask<bool> load();
84 QXmppTask<bool> setUp();
86 QXmppTask<QByteArray> ownKey();
87 QXmppTask<QHash<QXmpp::TrustLevel, QMultiHash<QString, QByteArray>>> keys(QXmpp::TrustLevels trustLevels = {});
88 QXmppTask<QHash<QString, QHash<QByteArray, QXmpp::TrustLevel>>> keys(
const QList<QString> &jids, QXmpp::TrustLevels trustLevels = {});
90 QXmppTask<bool> changeDeviceLabel(
const QString &deviceLabel = {});
92 int maximumDevicesPerJid()
const;
93 void setMaximumDevicesPerJid(
int maximum);
95 int maximumDevicesPerStanza()
const;
96 void setMaximumDevicesPerStanza(
int maximum);
98 QXmppTask<QVector<DevicesResult>> requestDeviceLists(
const QList<QString> &jids);
99 QXmppTask<QVector<DevicesResult>> subscribeToDeviceLists(
const QList<QString> &jids);
100 QXmppTask<QVector<DevicesResult>> unsubscribeFromDeviceLists();
103 QXmppTask<QVector<QXmppOmemoDevice>> devices();
104 QXmppTask<QVector<QXmppOmemoDevice>> devices(
const QList<QString> &jids);
105 QXmppTask<Result> removeContactDevices(
const QString &jid);
107 void setAcceptedSessionBuildingTrustLevels(QXmpp::TrustLevels trustLevels);
108 QXmpp::TrustLevels acceptedSessionBuildingTrustLevels();
110 void setNewDeviceAutoSessionBuildingEnabled(
bool isNewDeviceAutoSessionBuildingEnabled);
111 bool isNewDeviceAutoSessionBuildingEnabled();
113 QXmppTask<void> buildMissingSessions(
const QList<QString> &jids);
115 QXmppTask<bool> resetOwnDevice();
116 QXmppTask<bool> resetAll();
119 QXmppTask<QXmpp::TrustSecurityPolicy> securityPolicy();
121 QXmppTask<void> setTrustLevel(
const QMultiHash<QString, QByteArray> &keyIds,
QXmpp::TrustLevel trustLevel);
122 QXmppTask<QXmpp::TrustLevel> trustLevel(
const QString &keyOwnerJid,
const QByteArray &keyId);
125 QXmppTask<MessageEncryptResult> encryptMessage(
QXmppMessage &&message,
const std::optional<QXmppSendStanzaParams> ¶ms)
override;
126 QXmppTask<MessageDecryptResult> decryptMessage(
QXmppMessage &&message)
override;
128 QXmppTask<IqEncryptResult> encryptIq(
QXmppIq &&iq,
const std::optional<QXmppSendStanzaParams> ¶ms)
override;
129 QXmppTask<IqDecryptResult> decryptIq(
const QDomElement &element)
override;
131 bool isEncrypted(
const QDomElement &)
override;
134 QStringList discoveryFeatures()
const override;
135 bool handleStanza(
const QDomElement &stanza)
override;
136 bool handleMessage(
const QXmppMessage &message)
override;
151 bool handlePubSubEvent(
const QDomElement &element,
const QString &pubSubService,
const QString &nodeName)
override;
155 std::unique_ptr<QXmppOmemoManagerPrivate> d;
157 friend class QXmppOmemoManagerPrivate;
158 friend class tst_QXmppOmemoManager;
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition QXmppClientExtension.h:33