/***************************************************************************
- * 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 *
#include "identity.h"
+#ifdef HAVE_SSL
#include <QSslKey>
#include <QSslCertificate>
+#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