X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcoreidentity.h;h=6cb6cd1159bfdb43bb0388a26b4d07cb5405b6a3;hp=f22ea441057eca71f2b51ad33afde3a6d4deaa3b;hb=bf10e3ead6e50f90c6bb34074e39b938f9d35bc3;hpb=ac21cc48d22f0cf58a98b74754fa94564a8e3f45 diff --git a/src/core/coreidentity.h b/src/core/coreidentity.h index f22ea441..6cb6cd11 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-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -23,61 +23,82 @@ #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 { + SYNCABLE_OBJECT 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 { + SYNCABLE_OBJECT 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