/***************************************************************************
- * 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 *
* 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
#include "identity.h"
+#ifdef HAVE_SSL
#include <QSslKey>
#include <QSslCertificate>
+#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
+{
+ 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;
};
-// ========================================
-// CoreCertManager
-// ========================================
-class CoreCertManager : public CertManager {
- Q_OBJECT
+#endif //HAVE_SSL
+
+// =========================================
+// 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