Files
qt5-legatus-legacy/Lts/Services/WarehouseGuez/WsBiteInterface/Connection/connection_handler.h
T
2026-08-13 18:33:10 +02:00

61 lines
1.3 KiB
C++
Executable File

/**
* @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 <QtNetwork/QHostAddress>
#include <QtWebSockets/qwebsocketprotocol.h>
#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<ClientConnection *> m_connections;
LOGGER_T m_logger;
};
} // namespace Connection
} // namespace WsBiteInterface
} // namespace WarehouseGuez