X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreidentity.h;h=8c65146eb3d7ac19da19b6bac95147855d385357;hp=f22ea441057eca71f2b51ad33afde3a6d4deaa3b;hb=6eefdfc697067d184a589fc8a231b16316c09106;hpb=ac21cc48d22f0cf58a98b74754fa94564a8e3f45 diff --git a/src/core/coreidentity.h b/src/core/coreidentity.h index f22ea441..8c65146e 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-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,69 +15,95 @@ * 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 "identity.h" +#ifdef HAVE_SSL #include #include +#endif //HAVE_SSL -class CoreCertManager; -class CoreSession; class SignalProxy; -class CoreIdentity : public Identity { - Q_OBJECT +// ======================================== +// CoreCertManager +// ======================================== +#ifdef HAVE_SSL +class CoreIdentity; +class 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); +#ifdef HAVE_SSL + 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; +#endif -private: - QSslKey _sslKey; - QSslCertificate _sslCert; + void setId(IdentityId id); - CoreCertManager *_certManager; - CoreSession *_coreSession; +private: + CoreIdentity &identity; }; -// ======================================== -// CoreCertManager -// ======================================== -class CoreCertManager : public CertManager { - Q_OBJECT +#endif //HAVE_SSL + +// ========================================= +// CoreIdentity +// ========================================= +class 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); +#ifdef HAVE_SSL + 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); +#endif /* HAVE_SSL */ - void setId(IdentityId id); + CoreIdentity &operator=(const CoreIdentity &identity); private: - CoreIdentity *_identity; +#ifdef HAVE_SSL + QSslKey _sslKey; + QSslCertificate _sslCert; + + CoreCertManager _certManager; +#endif }; -#endif //COREIDENTITY_H + +#ifdef HAVE_SSL +inline const QSslKey &CoreCertManager::sslKey() const +{ + return identity.sslKey(); +} + + +inline const QSslCertificate &CoreCertManager::sslCert() const +{ + return identity.sslCert(); +} + +#endif