fixing request -> receive sync calls
[quassel.git] / src / common / identity.h
index 8ffc7da..86eafb4 100644 (file)
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef _IDENTITY_H_
-#define _IDENTITY_H_
+#ifndef IDENTITY_H
+#define IDENTITY_H
 
+#include <QByteArray>
 #include <QDataStream>
 #include <QMetaType>
 #include <QString>
@@ -52,100 +53,102 @@ class Identity : public SyncableObject {
   Q_PROPERTY(QString partReason READ partReason WRITE setPartReason STORED false)
   Q_PROPERTY(QString quitReason READ quitReason WRITE setQuitReason STORED false)
 
-  public:
-    Identity(IdentityId id = 0, QObject *parent = 0);
-    Identity(const Identity &other, QObject *parent = 0);
-    void setToDefaults();
-
-    bool operator==(const Identity &other);
-    bool operator!=(const Identity &other);
-
-    bool isValid() const;
-
-    IdentityId id() const;
-    QString identityName() const;
-    QString realName() const;
-    QStringList nicks() const;
-    QString awayNick() const;
-    bool awayNickEnabled() const;
-    QString awayReason() const;
-    bool awayReasonEnabled() const;
-    bool autoAwayEnabled() const;
-    int autoAwayTime() const;
-    QString autoAwayReason() const;
-    bool autoAwayReasonEnabled() const;
-    bool detachAwayEnabled() const;
-    QString detachAwayReason() const;
-    bool detachAwayReasonEnabled() const;
-    QString ident() const;
-    QString kickReason() const;
-    QString partReason() const;
-    QString quitReason() const;
-
-  public slots:
-    void setId(IdentityId id);
-    void setIdentityName(const QString &name);
-    void setRealName(const QString &realName);
-    void setNicks(const QStringList &nicks);
-    void setAwayNick(const QString &awayNick);
-    void setAwayNickEnabled(bool enabled);
-    void setAwayReason(const QString &awayReason);
-    void setAwayReasonEnabled(bool enabled);
-    void setAutoAwayEnabled(bool enabled);
-    void setAutoAwayTime(int time);
-    void setAutoAwayReason(const QString &reason);
-    void setAutoAwayReasonEnabled(bool enabled);
-    void setDetachAwayEnabled(bool enabled);
-    void setDetachAwayReason(const QString &reason);
-    void setDetachAwayReasonEnabled(bool enabled);
-    void setIdent(const QString &ident);
-    void setKickReason(const QString &reason);
-    void setPartReason(const QString &reason);
-    void setQuitReason(const QString &reason);
-
-    void update(const Identity &other);
-
-  signals:
-    void idSet(IdentityId id);
-    void identityNameSet(const QString &name);
-    void realNameSet(const QString &realName);
-    void nicksSet(const QStringList &nicks);
-    void awayNickSet(const QString &awayNick);
-    void awayNickEnabledSet(bool);
-    void awayReasonSet(const QString &awayReason);
-    void awayReasonEnabledSet(bool);
-    void autoAwayEnabledSet(bool);
-    void autoAwayTimeSet(int);
-    void autoAwayReasonSet(const QString &);
-    void autoAwayReasonEnabledSet(bool);
-    void detachAwayEnabledSet(bool);
-    void detachAwayReasonSet(const QString &);
-    void detachAwayReasonEnabledSet(bool);
-    void identSet(const QString &);
-    void kickReasonSet(const QString &);
-    void partReasonSet(const QString &);
-    void quitReasonSet(const QString &);
-
-  private:
-    IdentityId _identityId;
-    QString _identityName, _realName;
-    QStringList _nicks;
-    QString _awayNick;
-    bool _awayNickEnabled;
-    QString _awayReason;
-    bool _awayReasonEnabled;
-    bool _autoAwayEnabled;
-    int _autoAwayTime;
-    QString _autoAwayReason;
-    bool _autoAwayReasonEnabled;
-    bool _detachAwayEnabled;
-    QString _detachAwayReason;
-    bool _detachAwayReasonEnabled;
-    QString _ident, _kickReason, _partReason, _quitReason;
-
-    void init();
-
-    friend QDataStream &operator>>(QDataStream &in, Identity &identity);
+public:
+  Identity(IdentityId id = 0, QObject *parent = 0);
+  Identity(const Identity &other, QObject *parent = 0);
+  inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; }
+
+  void setToDefaults();
+
+  bool operator==(const Identity &other) const;
+  bool operator!=(const Identity &other) const;
+
+  inline bool isValid() const { return id().isValid(); }
+
+  inline IdentityId id() const { return _identityId; }
+  inline const QString &identityName() const { return _identityName; }
+  inline const QString &realName() const { return _realName; }
+  inline const QStringList &nicks() const { return _nicks; }
+  inline const QString &awayNick() const { return _awayNick; }
+  inline bool awayNickEnabled() const { return _awayNickEnabled; }
+  inline const QString &awayReason() const { return _awayReason; }
+  inline bool awayReasonEnabled() const { return _awayReasonEnabled; }
+  inline bool autoAwayEnabled() const { return _autoAwayEnabled; }
+  inline int autoAwayTime() const { return _autoAwayTime; }
+  inline const QString &autoAwayReason() const { return _autoAwayReason; }
+  inline bool autoAwayReasonEnabled() const { return _autoAwayReasonEnabled; }
+  inline bool detachAwayEnabled() const { return _detachAwayEnabled; }
+  inline const QString &detachAwayReason() const { return _detachAwayReason; }
+  inline bool detachAwayReasonEnabled() const { return _detachAwayReasonEnabled; }
+  inline const QString &ident() const { return _ident; }
+  inline const QString &kickReason() const { return _kickReason; }
+  inline const QString &partReason() const { return _partReason; }
+  inline const QString &quitReason() const { return _quitReason; }
+
+public slots:
+  void setId(IdentityId id);
+  void setIdentityName(const QString &name);
+  void setRealName(const QString &realName);
+  void setNicks(const QStringList &nicks);
+  void setAwayNick(const QString &awayNick);
+  void setAwayNickEnabled(bool enabled);
+  void setAwayReason(const QString &awayReason);
+  void setAwayReasonEnabled(bool enabled);
+  void setAutoAwayEnabled(bool enabled);
+  void setAutoAwayTime(int time);
+  void setAutoAwayReason(const QString &reason);
+  void setAutoAwayReasonEnabled(bool enabled);
+  void setDetachAwayEnabled(bool enabled);
+  void setDetachAwayReason(const QString &reason);
+  void setDetachAwayReasonEnabled(bool enabled);
+  void setIdent(const QString &ident);
+  void setKickReason(const QString &reason);
+  void setPartReason(const QString &reason);
+  void setQuitReason(const QString &reason);
+
+  void copyFrom(const Identity &other);
+
+signals:
+  void idSet(IdentityId id);
+  void identityNameSet(const QString &name);
+  void realNameSet(const QString &realName);
+  void nicksSet(const QStringList &nicks);
+  void awayNickSet(const QString &awayNick);
+  void awayNickEnabledSet(bool);
+  void awayReasonSet(const QString &awayReason);
+  void awayReasonEnabledSet(bool);
+  void autoAwayEnabledSet(bool);
+  void autoAwayTimeSet(int);
+  void autoAwayReasonSet(const QString &);
+  void autoAwayReasonEnabledSet(bool);
+  void detachAwayEnabledSet(bool);
+  void detachAwayReasonSet(const QString &);
+  void detachAwayReasonEnabledSet(bool);
+  void identSet(const QString &);
+  void kickReasonSet(const QString &);
+  void partReasonSet(const QString &);
+  void quitReasonSet(const QString &);
+
+private:
+  IdentityId _identityId;
+  QString _identityName, _realName;
+  QStringList _nicks;
+  QString _awayNick;
+  bool _awayNickEnabled;
+  QString _awayReason;
+  bool _awayReasonEnabled;
+  bool _autoAwayEnabled;
+  int _autoAwayTime;
+  QString _autoAwayReason;
+  bool _autoAwayReasonEnabled;
+  bool _detachAwayEnabled;
+  QString _detachAwayReason;
+  bool _detachAwayReasonEnabled;
+  QString _ident, _kickReason, _partReason, _quitReason;
+
+  void init();
+
+  friend QDataStream &operator>>(QDataStream &in, Identity &identity);
 };
 
 QDataStream &operator<<(QDataStream &out, Identity identity);
@@ -153,4 +156,33 @@ QDataStream &operator>>(QDataStream &in, Identity &identity);
 
 Q_DECLARE_METATYPE(Identity)
 
-#endif
+#ifdef HAVE_SSL
+#include <QSslKey>
+#include <QSslCertificate>
+
+class CertManager : public SyncableObject {
+  Q_OBJECT
+  Q_PROPERTY(QByteArray sslKey READ sslKeyPem WRITE setSslKey STORED false)
+  Q_PROPERTY(QByteArray sslCert READ sslCertPem WRITE setSslCert STORED false)
+
+public:
+  CertManager(IdentityId id, QObject *parent = 0) : SyncableObject(QString::number(id.toInt()), parent) {}
+  inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; }
+
+  virtual const QSslKey &sslKey() const = 0;
+  inline QByteArray sslKeyPem() const { return sslKey().toPem(); }
+  virtual const QSslCertificate &sslCert() const = 0;
+  inline QByteArray sslCertPem() const { return sslCert().toPem(); }
+
+public slots:
+  inline virtual void setSslKey(const QByteArray &encoded) { emit sslKeySet(encoded); }
+  inline virtual void setSslCert(const QByteArray &encoded) { emit sslCertSet(encoded); }
+
+signals:
+  void sslKeySet(const QByteArray &);
+  void sslCertSet(const QByteArray &);
+};
+
+#endif // HAVE_SSL
+
+#endif // IDENTITY_H