src: Mark symbols to be exported where needed
[quassel.git] / src / common / peer.h
index 64a333c..345889a 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2016 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  *
@@ -18,8 +18,9 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef PEER_H
-#define PEER_H
+#pragma once
+
+#include "common-export.h"
 
 #include <QAbstractSocket>
 #include <QDataStream>
 
 #include "authhandler.h"
 #include "protocol.h"
+#include "quassel.h"
 #include "signalproxy.h"
 
-class Peer : public QObject
+class COMMON_EXPORT Peer : public QObject
 {
     Q_OBJECT
 
@@ -51,6 +53,10 @@ public:
     QString clientVersion() const;
     void setClientVersion(const QString &clientVersion);
 
+    bool hasFeature(Quassel::Feature feature) const;
+    Quassel::Features features() const;
+    void setFeatures(Quassel::Features features);
+
     int id() const;
     void setId(int id);
 
@@ -102,6 +108,7 @@ private:
 
     QString _buildDate;
     QString _clientVersion;
+    Quassel::Features _features;
 
     int _id = -1;
 };
@@ -119,7 +126,7 @@ template<typename T> inline
 void Peer::handle(const T &protoMessage)
 {
     switch(protoMessage.handler()) {
-        case Protocol::SignalProxy:
+        case Protocol::Handler::SignalProxy:
             if (!signalProxy()) {
                 qWarning() << Q_FUNC_INFO << "Cannot handle message without a SignalProxy!";
                 return;
@@ -127,7 +134,7 @@ void Peer::handle(const T &protoMessage)
             signalProxy()->handle(this, protoMessage);
             break;
 
-        case Protocol::AuthHandler:
+        case Protocol::Handler::AuthHandler:
             if (!authHandler()) {
                 qWarning() << Q_FUNC_INFO << "Cannot handle auth messages without an active AuthHandler!";
                 return;
@@ -140,5 +147,3 @@ void Peer::handle(const T &protoMessage)
             return;
     }
 }
-
-#endif