summary refs log tree commit diff
path: root/src/Cache.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Cache.h')
-rw-r--r--src/Cache.h85
1 files changed, 42 insertions, 43 deletions
diff --git a/src/Cache.h b/src/Cache.h
index f5e1cfa0..878ac9ce 100644
--- a/src/Cache.h
+++ b/src/Cache.h
@@ -17,7 +17,8 @@
 
 #pragma once
 
-#include <boost/optional.hpp>
+#include <mutex>
+#include <optional>
 
 #include <QDateTime>
 #include <QDir>
@@ -25,11 +26,11 @@
 #include <QString>
 
 #include <lmdb++.h>
+#include <nlohmann/json.hpp>
+
 #include <mtx/events/join_rules.hpp>
 #include <mtx/responses.hpp>
 #include <mtxclient/crypto/client.hpp>
-#include <mutex>
-#include <nlohmann/json.hpp>
 
 #include "Logging.h"
 #include "MatrixClient.h"
@@ -453,8 +454,8 @@ public:
         //
         void saveOlmSession(const std::string &curve25519, mtx::crypto::OlmSessionPtr session);
         std::vector<std::string> getOlmSessions(const std::string &curve25519);
-        boost::optional<mtx::crypto::OlmSessionPtr> getOlmSession(const std::string &curve25519,
-                                                                  const std::string &session_id);
+        std::optional<mtx::crypto::OlmSessionPtr> getOlmSession(const std::string &curve25519,
+                                                                const std::string &session_id);
 
         void saveOlmAccount(const std::string &pickled);
         std::string restoreOlmAccount();
@@ -517,52 +518,50 @@ private:
                 using namespace mtx::events;
                 using namespace mtx::events::state;
 
-                if (boost::get<StateEvent<Member>>(&event) != nullptr) {
-                        const auto e = boost::get<StateEvent<Member>>(event);
-
-                        switch (e.content.membership) {
+                if (auto e = std::get_if<StateEvent<Member>>(&event); e != nullptr) {
+                        switch (e->content.membership) {
                         //
                         // We only keep users with invite or join membership.
                         //
                         case Membership::Invite:
                         case Membership::Join: {
-                                auto display_name = e.content.display_name.empty()
-                                                      ? e.state_key
-                                                      : e.content.display_name;
+                                auto display_name = e->content.display_name.empty()
+                                                      ? e->state_key
+                                                      : e->content.display_name;
 
                                 // Lightweight representation of a member.
-                                MemberInfo tmp{display_name, e.content.avatar_url};
+                                MemberInfo tmp{display_name, e->content.avatar_url};
 
                                 lmdb::dbi_put(txn,
                                               membersdb,
-                                              lmdb::val(e.state_key),
+                                              lmdb::val(e->state_key),
                                               lmdb::val(json(tmp).dump()));
 
                                 insertDisplayName(QString::fromStdString(room_id),
-                                                  QString::fromStdString(e.state_key),
+                                                  QString::fromStdString(e->state_key),
                                                   QString::fromStdString(display_name));
 
                                 insertAvatarUrl(QString::fromStdString(room_id),
-                                                QString::fromStdString(e.state_key),
-                                                QString::fromStdString(e.content.avatar_url));
+                                                QString::fromStdString(e->state_key),
+                                                QString::fromStdString(e->content.avatar_url));
 
                                 break;
                         }
                         default: {
                                 lmdb::dbi_del(
-                                  txn, membersdb, lmdb::val(e.state_key), lmdb::val(""));
+                                  txn, membersdb, lmdb::val(e->state_key), lmdb::val(""));
 
                                 removeDisplayName(QString::fromStdString(room_id),
-                                                  QString::fromStdString(e.state_key));
+                                                  QString::fromStdString(e->state_key));
                                 removeAvatarUrl(QString::fromStdString(room_id),
-                                                QString::fromStdString(e.state_key));
+                                                QString::fromStdString(e->state_key));
 
                                 break;
                         }
                         }
 
                         return;
-                } else if (boost::get<StateEvent<Encryption>>(&event) != nullptr) {
+                } else if (std::holds_alternative<StateEvent<Encryption>>(event)) {
                         setEncryptedRoom(txn, room_id);
                         return;
                 }
@@ -570,7 +569,7 @@ private:
                 if (!isStateEvent(event))
                         return;
 
-                boost::apply_visitor(
+                std::visit(
                   [&txn, &statesdb](auto e) {
                           lmdb::dbi_put(
                             txn, statesdb, lmdb::val(to_string(e.type)), lmdb::val(json(e).dump()));
@@ -584,17 +583,17 @@ private:
                 using namespace mtx::events;
                 using namespace mtx::events::state;
 
-                return boost::get<StateEvent<Aliases>>(&e) != nullptr ||
-                       boost::get<StateEvent<state::Avatar>>(&e) != nullptr ||
-                       boost::get<StateEvent<CanonicalAlias>>(&e) != nullptr ||
-                       boost::get<StateEvent<Create>>(&e) != nullptr ||
-                       boost::get<StateEvent<GuestAccess>>(&e) != nullptr ||
-                       boost::get<StateEvent<HistoryVisibility>>(&e) != nullptr ||
-                       boost::get<StateEvent<JoinRules>>(&e) != nullptr ||
-                       boost::get<StateEvent<Name>>(&e) != nullptr ||
-                       boost::get<StateEvent<Member>>(&e) != nullptr ||
-                       boost::get<StateEvent<PowerLevels>>(&e) != nullptr ||
-                       boost::get<StateEvent<Topic>>(&e) != nullptr;
+                return std::holds_alternative<StateEvent<Aliases>>(e) ||
+                       std::holds_alternative<StateEvent<state::Avatar>>(e) ||
+                       std::holds_alternative<StateEvent<CanonicalAlias>>(e) ||
+                       std::holds_alternative<StateEvent<Create>>(e) ||
+                       std::holds_alternative<StateEvent<GuestAccess>>(e) ||
+                       std::holds_alternative<StateEvent<HistoryVisibility>>(e) ||
+                       std::holds_alternative<StateEvent<JoinRules>>(e) ||
+                       std::holds_alternative<StateEvent<Name>>(e) ||
+                       std::holds_alternative<StateEvent<Member>>(e) ||
+                       std::holds_alternative<StateEvent<PowerLevels>>(e) ||
+                       std::holds_alternative<StateEvent<Topic>>(e);
         }
 
         template<class T>
@@ -603,11 +602,11 @@ private:
                 using namespace mtx::events;
                 using namespace mtx::events::state;
 
-                return boost::get<StateEvent<state::Avatar>>(&e) != nullptr ||
-                       boost::get<StateEvent<CanonicalAlias>>(&e) != nullptr ||
-                       boost::get<StateEvent<Name>>(&e) != nullptr ||
-                       boost::get<StateEvent<Member>>(&e) != nullptr ||
-                       boost::get<StateEvent<Topic>>(&e) != nullptr;
+                return std::holds_alternative<StateEvent<state::Avatar>>(e) ||
+                       std::holds_alternative<StateEvent<CanonicalAlias>>(e) ||
+                       std::holds_alternative<StateEvent<Name>>(e) ||
+                       std::holds_alternative<StateEvent<Member>>(e) ||
+                       std::holds_alternative<StateEvent<Topic>>(e);
         }
 
         bool containsStateUpdates(const mtx::events::collections::StrippedEvents &e)
@@ -615,11 +614,11 @@ private:
                 using namespace mtx::events;
                 using namespace mtx::events::state;
 
-                return boost::get<StrippedEvent<state::Avatar>>(&e) != nullptr ||
-                       boost::get<StrippedEvent<CanonicalAlias>>(&e) != nullptr ||
-                       boost::get<StrippedEvent<Name>>(&e) != nullptr ||
-                       boost::get<StrippedEvent<Member>>(&e) != nullptr ||
-                       boost::get<StrippedEvent<Topic>>(&e) != nullptr;
+                return std::holds_alternative<StrippedEvent<state::Avatar>>(e) ||
+                       std::holds_alternative<StrippedEvent<CanonicalAlias>>(e) ||
+                       std::holds_alternative<StrippedEvent<Name>>(e) ||
+                       std::holds_alternative<StrippedEvent<Member>>(e) ||
+                       std::holds_alternative<StrippedEvent<Topic>>(e);
         }
 
         void saveInvites(lmdb::txn &txn,