modernize: Use '= default' instead of empty ctor/dtor bodies
[quassel.git] / src / core / identserver.h
index cff24b7..3723c25 100644 (file)
 
 #pragma once
 
 
 #pragma once
 
+#include <list>
+
+#include <QHash>
+#include <QObject>
+#include <QPointer>
+#include <QString>
 #include <QTcpServer>
 #include <QTcpSocket>
 
 #include "coreidentity.h"
 
 #include <QTcpServer>
 #include <QTcpSocket>
 
 #include "coreidentity.h"
 
-struct Request {
-    QTcpSocket *socket;
+struct Request
+{
+    QPointer<QTcpSocket> socket;
     uint16_t localPort;
     QString query;
     qint64 transactionId;
     qint64 requestId;
 
     friend bool operator==(const Request &a, const Request &b);
     uint16_t localPort;
     QString query;
     qint64 transactionId;
     qint64 requestId;
 
     friend bool operator==(const Request &a, const Request &b);
+
+    void respondSuccess(const QString &user);
+    void respondError(const QString &error);
 };
 
 };
 
-class IdentServer : public QObject {
-Q_OBJECT
+
+class IdentServer : public QObject
+{
+    Q_OBJECT
+
 public:
 public:
-    IdentServer(bool strict, QObject *parent);
-    ~IdentServer() override;
+    IdentServer(QObject *parent = nullptr);
 
     bool startListening();
     void stopListening(const QString &msg);
     qint64 addWaitingSocket();
 
     bool startListening();
     void stopListening(const QString &msg);
     qint64 addWaitingSocket();
+
 public slots:
 public slots:
-    bool addSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort, qint64 socketId);
-    bool removeSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort, qint64 socketId);
+    void addSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort, qint64 socketId);
+    void removeSocket(const CoreIdentity *identity, const QHostAddress &localAddress, quint16 localPort, const QHostAddress &peerAddress, quint16 peerPort, qint64 socketId);
 
 private slots:
     void incomingConnection();
     void respond();
 
 private:
 
 private slots:
     void incomingConnection();
     void respond();
 
 private:
-    bool responseAvailable(Request request);
-    void responseUnavailable(Request request);
-
-    QString sysIdentForIdentity(const CoreIdentity *identity) const;
+    bool responseAvailable(Request request) const;
 
 
-    qint64 lowestSocketId();
+    qint64 lowestSocketId() const;
 
     void processWaiting(qint64 socketId);
 
 
     void processWaiting(qint64 socketId);
 
@@ -66,11 +76,9 @@ private:
 
     QTcpServer _server, _v6server;
 
 
     QTcpServer _server, _v6server;
 
-    bool _strict;
-
     QHash<uint16_t, QString> _connections;
     std::list<Request> _requestQueue;
     std::list<qint64> _waiting;
     QHash<uint16_t, QString> _connections;
     std::list<Request> _requestQueue;
     std::list<qint64> _waiting;
-    qint64 _socketId;
-    qint64 _requestId;
+    qint64 _socketId{0};
+    qint64 _requestId{0};
 };
 };