// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #ifndef CLIENT_H #define CLIENT_H #include "server.h" #include #include #include class PeerManager; class Client : public QObject { Q_OBJECT public: Client(); void sendMessage(const QString &message); QString nickName() const; bool hasConnection(const QHostAddress &senderIp, int senderPort = -1) const; signals: void newMessage(const QString &from, const QString &message); void newParticipant(const QString &nick); void participantLeft(const QString &nick); private slots: void newConnection(Connection *connection); void connectionError(QAbstractSocket::SocketError socketError); void disconnected(); void readyForUse(); private: void removeConnection(Connection *connection); PeerManager *peerManager; Server server; QMultiHash peers; }; #endif