X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreidentity.h;h=72d331c62613c4cf19689f1302dd7853b5f7a9ea;hp=f22ea441057eca71f2b51ad33afde3a6d4deaa3b;hb=55ed2b3b4fac69d7d4bcb62f312b1fd233626577;hpb=ac21cc48d22f0cf58a98b74754fa94564a8e3f45 diff --git a/src/core/coreidentity.h b/src/core/coreidentity.h index f22ea441..72d331c6 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,92 @@ * 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" -#include -#include +#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; }; +#endif // HAVE_SSL -// ======================================== -// CoreCertManager -// ======================================== -class CoreCertManager : public CertManager { - Q_OBJECT +// ========================================= +// 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