#include "omemo_db.h" #include #include #include #include #include static const QString service = "xxcc", key_namespace = "omemo"; OmemoDb::OmemoDb(const JidDb &db) : db(db) { } QXmppTask OmemoDb::allData() { QXmppOmemoStorage::OmemoData ret; QHash> devices; for (const auto &d : db.omemoDevices()) ret.devices.insert(d.jid, d.devices); ret.ownDevice = db.omemoOwnDevice(); ret.preKeyPairs = db.preKeyPairs(); ret.signedPreKeyPairs = db.signedPreKeyPairs(); return QXmpp::Private::makeReadyTask(QXmppOmemoStorage::OmemoData(ret)); } QXmppTask OmemoDb::setOwnDevice(const std::optional &device) { if (device.has_value() && db.store(device.value())) std::cerr << "db.store failed" << std::endl; return QXmpp::Private::makeReadyTask(); } QXmppTask OmemoDb::addSignedPreKeyPair(const uint32_t keyId, const SignedPreKeyPair &keyPair) { if (db.store(keyId, keyPair)) std::cerr << "db.store failed" << std::endl; return QXmpp::Private::makeReadyTask(); } QXmppTask OmemoDb::removeSignedPreKeyPair(uint32_t keyId) { db.removeSignedPreKeyPair(keyId); return QXmpp::Private::makeReadyTask(); } QXmppTask OmemoDb::addPreKeyPairs( const QHash &keyPairs) { if (db.store(keyPairs)) std::cerr << "db.store failed" << std::endl; return QXmpp::Private::makeReadyTask(); } QXmppTask OmemoDb::removePreKeyPair(const uint32_t keyId) { db.removePreKeyPair(keyId); return QXmpp::Private::makeReadyTask(); } QXmppTask OmemoDb::addDevice(const QString &jid, const uint32_t deviceId, const Device &d) { if (db.store(jid, deviceId, d)) std::cerr << "db.store failed" << std::endl; return QXmpp::Private::makeReadyTask(); } QXmppTask OmemoDb::removeDevice(const QString &jid, const uint32_t deviceId) { db.removeOmemoDevice(jid, deviceId); return QXmpp::Private::makeReadyTask(); } QXmppTask OmemoDb::removeDevices(const QString &jid) { db.removeOmemoDevices(jid); return QXmpp::Private::makeReadyTask(); } QXmppTask OmemoDb::resetAll() { db.removeOmemo(); return QXmpp::Private::makeReadyTask(); }