/** * @RDE_HEADER@ * The ConnectionHandler class functions as a WebSocket server and manages incoming client connections. * $Id$ * $HeadURL$ * $Author$ * Created by Hannes Fritsche, SLSE, 2017-09-07 */ #pragma once #include #include #include "../Messages/ws_reply_message.h" #include "logger.h" class QWebSocketServer; namespace WarehouseGuez { namespace WsBiteInterface { namespace Messages { class MessageTransmitter; } namespace Connection { class ClientConnection; class ConnectionHandler : public QObject { Q_OBJECT public: explicit ConnectionHandler(); ~ConnectionHandler(); bool init(); Q_SIGNALS: void newTextMessageFromClient(Messages::MessageTransmitter *transmitter, const QString &message); void lastConnectionClosed(); void clientDisconnected(Messages::MessageTransmitter *transmitter); private Q_SLOTS: void onNewMessage(Messages::MessageTransmitter *transmitter, const QString &message); void onServerError(QWebSocketProtocol::CloseCode closeCode); void onNewConnection(); void onDisconnected(ClientConnection *conn); private: // attributes QWebSocketServer *m_server; QVector m_connections; LOGGER_T m_logger; }; } // namespace Connection } // namespace WsBiteInterface } // namespace WarehouseGuez