// Squawk messenger. // Copyright (C) 2019 Yury Gubich // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . #ifndef CORE_OMEMOHANDLER_H #define CORE_OMEMOHANDLER_H #include #include namespace Core { class OmemoHandler : public QXmppOmemoStorage { public: OmemoHandler(); ~OmemoHandler() override; QFuture allData() override; QFuture setOwnDevice(const std::optional &device) override; QFuture addSignedPreKeyPair(uint32_t keyId, const SignedPreKeyPair &keyPair) override; QFuture removeSignedPreKeyPair(uint32_t keyId) override; QFuture addPreKeyPairs(const QHash &keyPairs) override; QFuture removePreKeyPair(uint32_t keyId) override; QFuture addDevice(const QString &jid, uint32_t deviceId, const Device &device) override; QFuture removeDevice(const QString &jid, uint32_t deviceId) override; QFuture removeDevices(const QString &jid) override; QFuture resetAll() override; private: std::optional ownDevice; Cache> devices; Cache preKeyPairs; Cache signedPreKeyPairs; }; } #endif // CORE_OMEMOHANDLER_H