xxcc/trust_db.h

73 lines
2.7 KiB
C++

#ifndef TRUST_DB_H
#define TRUST_DB_H
#include "jiddb.h"
#include <QXmppClient.h>
#include <QXmppTask.h>
#include <QXmppTrustLevel.h>
#include <QXmppTrustStorage.h>
#include <QByteArray>
#include <QHash>
#include <QList>
#include <QMultiHash>
#include <QString>
class TrustDb : virtual public QXmppTrustStorage
{
public:
TrustDb(const QString &jid, const JidDb &db);
QXmppTask<void> setSecurityPolicy(const QString &encryption,
QXmpp::TrustSecurityPolicy securityPolicy) override;
QXmppTask<void> resetSecurityPolicy(const QString &encryption) override;
QXmppTask<QXmpp::TrustSecurityPolicy> securityPolicy(
const QString &encryption) override;
QXmppTask<void> setOwnKey(const QString &encryption,
const QByteArray &keyId) override;
QXmppTask<void> resetOwnKey(const QString &encryption) override;
QXmppTask<QByteArray> ownKey(const QString &encryption) override;
QXmppTask<void> addKeys(const QString &encryption,
const QString &keyOwnerJid, const QList<QByteArray> &keyIds,
QXmpp::TrustLevel trustLevel
= QXmpp::TrustLevel::AutomaticallyDistrusted) override;
QXmppTask<void> removeKeys(const QString &encryption,
const QList<QByteArray> &keyIds) override;
QXmppTask<void> removeKeys(const QString &encryption,
const QString &keyOwnerJid) override;
QXmppTask<void> removeKeys(const QString &encryption) override;
QXmppTask<QHash<QXmpp::TrustLevel,
QMultiHash<QString, QByteArray>>> keys(const QString &encryption,
QXmpp::TrustLevels trustLevels = {}) override;
QXmppTask<QHash<QString,
QHash<QByteArray, QXmpp::TrustLevel>>> keys(const QString &encryption,
const QList<QString> &keyOwnerJids,
QXmpp::TrustLevels trustLevels = {}) override;
QXmppTask<bool> hasKey(const QString &encryption,
const QString &keyOwnerJid, QXmpp::TrustLevels trustLevels) override;
QXmppTask<QHash<QString,
QMultiHash<QString, QByteArray>>> setTrustLevel(
const QString &encryption,
const QMultiHash<QString, QByteArray> &keyIds,
QXmpp::TrustLevel trustLevel) override;
QXmppTask<QHash<QString,
QMultiHash<QString, QByteArray>>> setTrustLevel(
const QString &encryption,
const QList<QString> &keyOwnerJids,
QXmpp::TrustLevel oldTrustLevel,
QXmpp::TrustLevel newTrustLevel) override;
QXmppTask<QXmpp::TrustLevel> trustLevel(const QString &encryption,
const QString &keyOwnerJid, const QByteArray &keyId) override;
QXmppTask<void> resetAll(const QString &encryption) override;
private:
const QString &jid;
const JidDb &db;
QString service() const;
};
#endif