// SPDX-FileCopyrightText: 2021 Linus Jahn // // SPDX-License-Identifier: LGPL-2.1-or-later #ifndef QXMPPE2EEEXTENSION_H #define QXMPPE2EEEXTENSION_H #include "QXmppSendResult.h" class QDomElement; class QXmppMessage; class QXmppIq; template class QFuture; class QXmppE2eeExtension { public: struct NotEncrypted { }; using EncryptMessageResult = std::variant; using IqEncryptResult = std::variant; using IqDecryptResult = std::variant; virtual QFuture encryptMessage(QXmppMessage &&) = 0; virtual QFuture encryptIq(QXmppIq &&) = 0; virtual QFuture decryptIq(const QDomElement &) = 0; }; #endif // QXMPPE2EEEXTENSION_H