aboutsummaryrefslogtreecommitdiff
path: root/src/client/QXmppOmemoMemoryStorage.cpp
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-05-31 12:22:48 +0200
committerLinus Jahn <lnj@kaidan.im>2022-08-13 15:55:03 +0200
commitf0e0e1cd227c08ffd97aa42813a479b8c3ca6d23 (patch)
tree12ca6aefdef9195ee8937406db86e73cf1a5f820 /src/client/QXmppOmemoMemoryStorage.cpp
parent87df8a8dda385558d39639ce09e2717974264ab6 (diff)
downloadqxmpp-f0e0e1cd227c08ffd97aa42813a479b8c3ca6d23.tar.gz
Split up OMEMO into extra module
Diffstat (limited to 'src/client/QXmppOmemoMemoryStorage.cpp')
-rw-r--r--src/client/QXmppOmemoMemoryStorage.cpp119
1 files changed, 0 insertions, 119 deletions
diff --git a/src/client/QXmppOmemoMemoryStorage.cpp b/src/client/QXmppOmemoMemoryStorage.cpp
deleted file mode 100644
index 6ff81002..00000000
--- a/src/client/QXmppOmemoMemoryStorage.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// SPDX-FileCopyrightText: 2022 Melvin Keskin <melvo@olomono.de>
-//
-// SPDX-License-Identifier: LGPL-2.1-or-later
-
-#include "QXmppOmemoMemoryStorage.h"
-
-#include "QXmppFutureUtils_p.h"
-
-using namespace QXmpp::Private;
-
-///
-/// \class QXmppOmemoMemoryStorage
-///
-/// \brief The QXmppOmemoMemoryStorage class stores data used by
-/// \xep{0384, OMEMO Encryption} in the memory.
-///
-/// \warning THIS API IS NOT FINALIZED YET!
-///
-/// \since QXmpp 1.5
-///
-
-class QXmppOmemoMemoryStoragePrivate
-{
-public:
- bool isSetUp = false;
-
- std::optional<QXmppOmemoStorage::OwnDevice> ownDevice;
-
- // IDs of pre key pairs mapped to pre key pairs
- QHash<uint32_t, QByteArray> preKeyPairs;
-
- // IDs of signed pre key pairs mapped to signed pre key pairs
- QHash<uint32_t, QXmppOmemoStorage::SignedPreKeyPair> signedPreKeyPairs;
-
- // recipient JID mapped to device ID mapped to device
- QHash<QString, QHash<uint32_t, QXmppOmemoStorage::Device>> devices;
-};
-
-///
-/// Constructs an OMEMO memory storage.
-///
-QXmppOmemoMemoryStorage::QXmppOmemoMemoryStorage()
- : d(new QXmppOmemoMemoryStoragePrivate)
-{
-}
-
-QXmppOmemoMemoryStorage::~QXmppOmemoMemoryStorage() = default;
-
-/// \cond
-QFuture<QXmppOmemoStorage::OmemoData> QXmppOmemoMemoryStorage::allData()
-{
- return makeReadyFuture(std::move(OmemoData { d->ownDevice,
- d->signedPreKeyPairs,
- d->preKeyPairs,
- d->devices }));
-}
-
-QFuture<void> QXmppOmemoMemoryStorage::setOwnDevice(const std::optional<OwnDevice> &device)
-{
- d->ownDevice = device;
- return makeReadyFuture();
-}
-
-QFuture<void> QXmppOmemoMemoryStorage::addSignedPreKeyPair(const uint32_t keyId, const SignedPreKeyPair &keyPair)
-{
- d->signedPreKeyPairs.insert(keyId, keyPair);
- return makeReadyFuture();
-}
-
-QFuture<void> QXmppOmemoMemoryStorage::removeSignedPreKeyPair(const uint32_t keyId)
-{
- d->signedPreKeyPairs.remove(keyId);
- return makeReadyFuture();
-}
-
-QFuture<void> QXmppOmemoMemoryStorage::addPreKeyPairs(const QHash<uint32_t, QByteArray> &keyPairs)
-{
- d->preKeyPairs.insert(keyPairs);
- return makeReadyFuture();
-}
-
-QFuture<void> QXmppOmemoMemoryStorage::removePreKeyPair(const uint32_t keyId)
-{
- d->preKeyPairs.remove(keyId);
- return makeReadyFuture();
-}
-
-QFuture<void> QXmppOmemoMemoryStorage::addDevice(const QString &jid, const uint32_t deviceId, const QXmppOmemoStorage::Device &device)
-{
- d->devices[jid].insert(deviceId, device);
- return makeReadyFuture();
-}
-
-QFuture<void> QXmppOmemoMemoryStorage::removeDevice(const QString &jid, const uint32_t deviceId)
-{
- auto &devices = d->devices[jid];
- devices.remove(deviceId);
-
- // Remove the container for the passed JID if the container stores no
- // devices anymore.
- if (devices.isEmpty()) {
- d->devices.remove(jid);
- }
-
- return makeReadyFuture();
-}
-
-QFuture<void> QXmppOmemoMemoryStorage::removeDevices(const QString &jid)
-{
- d->devices.remove(jid);
- return makeReadyFuture();
-}
-
-QFuture<void> QXmppOmemoMemoryStorage::resetAll()
-{
- d.reset(new QXmppOmemoMemoryStoragePrivate());
- return makeReadyFuture();
-}
-/// \endcond