core: Don't store a reference in CoreCertManager
[quassel.git] / src / core / coreidentity.h
index 80db0d0..573f9c5 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2012 by the Quassel Project                        *
+ *   Copyright (C) 2005-2019 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef COREIDENTITY_H
-#define COREIDENTITY_H
+#pragma once
+
+#include "core-export.h"
 
 #include "identity.h"
 
 #ifdef HAVE_SSL
-#include <QSslKey>
-#include <QSslCertificate>
-#endif //HAVE_SSL
+#    include <QSslCertificate>
+#    include <QSslKey>
+#endif  // HAVE_SSL
 
 class SignalProxy;
 
@@ -35,58 +36,53 @@ class SignalProxy;
 // ========================================
 #ifdef HAVE_SSL
 class CoreIdentity;
-class CoreCertManager : public CertManager
+class CORE_EXPORT CoreCertManager : public CertManager
 {
-    SYNCABLE_OBJECT
-        Q_OBJECT
+    Q_OBJECT
 
 public:
-    CoreCertManager(CoreIdentity &identity);
+    CoreCertManager(CoreIdentityidentity);
 
-#ifdef HAVE_SSL
-    virtual const QSslKey &sslKey() const;
-    virtual const QSslCertificate &sslCert() const;
+#    ifdef HAVE_SSL
+    const QSslKey& sslKey() const override;
+    const QSslCertificate& sslCert() const override;
 
 public slots:
-    virtual void setSslKey(const QByteArray &encoded);
-    virtual void setSslCert(const QByteArray &encoded);
-#endif
+    void setSslKey(const QByteArray& encoded) override;
+    void setSslCert(const QByteArray& encoded) override;
+#    endif
 
     void setId(IdentityId id);
 
 private:
-    CoreIdentity &identity;
+    CoreIdentity* _identity{nullptr};
 };
 
-
-#endif //HAVE_SSL
+#endif  // HAVE_SSL
 
 // =========================================
 //  CoreIdentity
 // =========================================
-class CoreIdentity : public Identity
+class CORE_EXPORT CoreIdentity : public Identity
 {
-    SYNCABLE_OBJECT
-        Q_OBJECT
+    Q_OBJECT
 
 public:
-    CoreIdentity(IdentityId id, QObject *parent = 0);
-    CoreIdentity(const Identity &other, QObject *parent = 0);
-    CoreIdentity(const CoreIdentity &other, QObject *parent = 0);
+    CoreIdentity(IdentityId id, QObject* parent = nullptr);
+    CoreIdentity(const Identity& other, QObject* parent = nullptr);
+    CoreIdentity(const CoreIdentity& other, QObject* parent = nullptr);
 
-    void synchronize(SignalProxy *proxy);
+    void synchronize(SignalProxyproxy);
 
 #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);
+    inline const QSslKeysslKey() const { return _sslKey; }
+    inline void setSslKey(const QSslKeykey) { _sslKey = key; }
+    void setSslKey(const QByteArrayencoded);
+    inline const QSslCertificatesslCert() const { return _sslCert; }
+    inline void setSslCert(const QSslCertificatecert) { _sslCert = cert; }
+    void setSslCert(const QByteArrayencoded);
 #endif /* HAVE_SSL */
 
-    CoreIdentity &operator=(const CoreIdentity &identity);
-
 private:
 #ifdef HAVE_SSL
     QSslKey _sslKey;
@@ -96,20 +92,15 @@ private:
 #endif
 };
 
-
 #ifdef HAVE_SSL
-inline const QSslKey &CoreCertManager::sslKey() const
+inline const QSslKeyCoreCertManager::sslKey() const
 {
-    return identity.sslKey();
+    return _identity->sslKey();
 }
 
-
-inline const QSslCertificate &CoreCertManager::sslCert() const
+inline const QSslCertificate& CoreCertManager::sslCert() const
 {
-    return identity.sslCert();
+    return _identity->sslCert();
 }
 
-
 #endif
-
-#endif //COREIDENTITY_H