#ifndef CREDENTIALS_H #define CREDENTIALS_H #include "client.h" #include #include #include #include #include #include #include class Credentials : public QObject { Q_OBJECT public: struct Success {}; struct Error { QString description; }; using Pair = QPair; using PairList = QList; using StoreResult = std::variant; using LoadResult = std::variant; using PairListResult = std::variant; QXmppTask load(); QXmppTask store(Client *c); private: using Users = std::variant; QXmppTask store(const QString &key, const QString &value); QXmppTask store(const QString &user); QXmppTask load(const QString &key); QXmppTask storedUsersList(); QXmppTask storedUsers(); QXmppTask load(PairList &pairs, QStringList::const_iterator &it, QStringList::const_iterator end); }; #endif