X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreidentity.h;h=b2ba09f121bc6f10a8462d697c175c8ecd2fa932;hp=f22ea441057eca71f2b51ad33afde3a6d4deaa3b;hb=4e40c486dea949244b73beaf73d5ceb1ef591b5b;hpb=ac21cc48d22f0cf58a98b74754fa94564a8e3f45 diff --git a/src/core/coreidentity.h b/src/core/coreidentity.h index f22ea441..b2ba09f1 100644 --- a/src/core/coreidentity.h +++ b/src/core/coreidentity.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-2020 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,69 +15,78 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef COREIDENTITY_H -#define COREIDENTITY_H +#pragma once + +#include "core-export.h" #include "identity.h" -#include #include +#include -class CoreCertManager; -class CoreSession; class SignalProxy; -class CoreIdentity : public Identity { - Q_OBJECT +// ======================================== +// CoreCertManager +// ======================================== +class CoreIdentity; +class CORE_EXPORT CoreCertManager : public CertManager +{ + Q_OBJECT public: - CoreIdentity(IdentityId id, SignalProxy *proxy, CoreSession *parent); - CoreIdentity(const Identity &other, SignalProxy *proxy, CoreSession *parent); + CoreCertManager(CoreIdentity* identity); - inline const QSslKey &sslKey() const { return _sslKey; } - inline void setSslKey(const QSslKey &key) { _sslKey = key; } - void setSslKey(const QByteArray &encoded); - inline const QSslCertificate &sslCert() const { return _sslCert; } - inline void setSslCert(const QSslCertificate &cert) { _sslCert = cert; } - void setSslCert(const QByteArray &encoded); + const QSslKey& sslKey() const override; + const QSslCertificate& sslCert() const override; public slots: - virtual void update(const QVariantMap &properties); - void save(); + void setSslKey(const QByteArray& encoded) override; + void setSslCert(const QByteArray& encoded) override; -private: - QSslKey _sslKey; - QSslCertificate _sslCert; + void setId(IdentityId id); - CoreCertManager *_certManager; - CoreSession *_coreSession; +private: + CoreIdentity* _identity{nullptr}; }; - -// ======================================== -// CoreCertManager -// ======================================== -class CoreCertManager : public CertManager { - Q_OBJECT +// ========================================= +// CoreIdentity +// ========================================= +class CORE_EXPORT CoreIdentity : public Identity +{ + Q_OBJECT public: - CoreCertManager(CoreIdentity *identity); + CoreIdentity(IdentityId id, QObject* parent = nullptr); + CoreIdentity(const Identity& other, QObject* parent = nullptr); + CoreIdentity(const CoreIdentity& other, QObject* parent = nullptr); - inline CoreIdentity *identity() const { return _identity; } - virtual inline const QSslKey &sslKey() const { return identity()->sslKey(); } - virtual inline const QSslCertificate &sslCert() const { return identity()->sslCert(); } + void synchronize(SignalProxy* proxy); -public slots: - virtual void setSslKey(const QByteArray &encoded); - virtual void setSslCert(const QByteArray &encoded); - - void setId(IdentityId id); + inline const QSslKey& sslKey() const { return _sslKey; } + inline void setSslKey(const QSslKey& key) { _sslKey = key; } + void setSslKey(const QByteArray& encoded); + inline const QSslCertificate& sslCert() const { return _sslCert; } + inline void setSslCert(const QSslCertificate& cert) { _sslCert = cert; } + void setSslCert(const QByteArray& encoded); private: - CoreIdentity *_identity; + QSslKey _sslKey; + QSslCertificate _sslCert; + + CoreCertManager _certManager; }; -#endif //COREIDENTITY_H +inline const QSslKey& CoreCertManager::sslKey() const +{ + return _identity->sslKey(); +} + +inline const QSslCertificate& CoreCertManager::sslCert() const +{ + return _identity->sslCert(); +}