#ifndef OMEMO_DB_H #define OMEMO_DB_H #include #include #include #include #include #include class OmemoDb : public QXmppOmemoStorage { public: OmemoDb(const QString &jid); QXmppTask allData() override; QXmppTask setOwnDevice( const std::optional &device) override; QXmppTask addSignedPreKeyPair(uint32_t keyId, const SignedPreKeyPair &keyPair) override; QXmppTask removeSignedPreKeyPair(uint32_t keyId) override; QXmppTask addPreKeyPairs( const QHash &keyPairs) override; QXmppTask removePreKeyPair(uint32_t keyId) override; QXmppTask addDevice(const QString &jid, uint32_t deviceId, const Device &device) override; QXmppTask removeDevice(const QString &jid, uint32_t deviceId) override; QXmppTask removeDevices(const QString &jid) override; QXmppTask resetAll() override; private: const QString &jid; QString service() const; static int storeOwnKeyId(const QString &service, uint32_t id); static int storePrivateIdentityKey(const QString &service, const QByteArray &privateIdentityKey); static int storePublicIdentityKey(const QString &service, const QByteArray &publicIdentityKey); static int storeLatestSignedPreKeyId(const QString &service, uint32_t latestSignedPreKeyId); static int storeLatestPreKeyId(const QString &service, uint32_t latestPreKeyId); static int storeDeviceLabel(const QString &service, const QString &label); static int storeKeyId(const QString &service, const QByteArray &keyId); static int storeSession(const QString &service, const QByteArray &session); static int storeUnrespondedSentStanzasCount(const QString &service, int count); static int storeUnrespondedReceivedStanzasCount(const QString &service, int count); static int storeRemovalFromDeviceListDate(const QString &service, const QDateTime &dt); }; #endif