core: Don't store a reference in CoreCertManager
[quassel.git] / src / core / coreidentity.h
index f87f531..573f9c5 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-08 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  *
  *   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
-#define COREIDENTITY_H
+#pragma once
+
+#include "core-export.h"
 
 #include "identity.h"
 
-#include <QSslKey>
-#include <QSslCertificate>
+#ifdef HAVE_SSL
+#    include <QSslCertificate>
+#    include <QSslKey>
+#endif  // HAVE_SSL
 
-class CoreIdentity;
 class SignalProxy;
 
 // ========================================
 //  CoreCertManager
 // ========================================
-class CoreCertManager : public CertManager {
-  Q_OBJECT
+#ifdef HAVE_SSL
+class CoreIdentity;
+class CORE_EXPORT CoreCertManager : public CertManager
+{
+    Q_OBJECT
 
 public:
-  CoreCertManager(CoreIdentity &identity);
+    CoreCertManager(CoreIdentity* identity);
 
-  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);
+    void setSslKey(const QByteArray& encoded) override;
+    void setSslCert(const QByteArray& encoded) override;
+#    endif
 
-  void setId(IdentityId id);
+    void setId(IdentityId id);
 
 private:
-  CoreIdentity &identity;
+    CoreIdentity* _identity{nullptr};
 };
 
+#endif  // HAVE_SSL
+
 // =========================================
 //  CoreIdentity
 // =========================================
-class CoreIdentity : public Identity {
-  Q_OBJECT
+class CORE_EXPORT CoreIdentity : public Identity
+{
+    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(SignalProxy* proxy);
 
-  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);
-
-  CoreIdentity& CoreIdentity::operator=(const CoreIdentity &identity);
+#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 */
 
 private:
-  QSslKey _sslKey;
-  QSslCertificate _sslCert;
+#ifdef HAVE_SSL
+    QSslKey _sslKey;
+    QSslCertificate _sslCert;
 
-  CoreCertManager _certManager;
+    CoreCertManager _certManager;
+#endif
 };
 
-inline const QSslKey &CoreCertManager::sslKey() const {
-  return identity.sslKey();
-}
-inline const QSslCertificate &CoreCertManager::sslCert() const {
-  return identity.sslCert();
+#ifdef HAVE_SSL
+inline const QSslKey& CoreCertManager::sslKey() const
+{
+    return _identity->sslKey();
 }
 
+inline const QSslCertificate& CoreCertManager::sslCert() const
+{
+    return _identity->sslCert();
+}
 
-
-#endif //COREIDENTITY_H
+#endif