X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreidentity.h;h=be6eac1c229b0fe89ca8fb14305458d95c7c50e8;hp=f22ea441057eca71f2b51ad33afde3a6d4deaa3b;hb=800e88828e177e776e9971f203db75dc1c58903a;hpb=ac21cc48d22f0cf58a98b74754fa94564a8e3f45 diff --git a/src/core/coreidentity.h b/src/core/coreidentity.h index f22ea441..be6eac1c 100644 --- a/src/core/coreidentity.h +++ b/src/core/coreidentity.h @@ -23,61 +23,80 @@ #include "identity.h" +#ifdef HAVE_SSL #include #include +#endif //HAVE_SSL -class CoreCertManager; -class CoreSession; class SignalProxy; -class CoreIdentity : public Identity { +// ======================================== +// 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 + virtual const QSslKey &sslKey() const; + virtual const QSslCertificate &sslCert() const; public slots: - virtual void update(const QVariantMap &properties); - void save(); + virtual void setSslKey(const QByteArray &encoded); + virtual void setSslCert(const QByteArray &encoded); +#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 { +// ========================================= +// CoreIdentity +// ========================================= +class CoreIdentity : public Identity { Q_OBJECT public: - CoreCertManager(CoreIdentity *identity); + CoreIdentity(IdentityId id, QObject *parent = 0); + CoreIdentity(const Identity &other, QObject *parent = 0); + CoreIdentity(const CoreIdentity &other, QObject *parent = 0); - 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 }; +#ifdef HAVE_SSL +inline const QSslKey &CoreCertManager::sslKey() const { + return identity.sslKey(); +} +inline const QSslCertificate &CoreCertManager::sslCert() const { + return identity.sslCert(); +} +#endif + #endif //COREIDENTITY_H