#pragma once #include #include #include #include "client_message_factory.h" #include "logger.h" class QThread; namespace LtsWebSocket { class WebSocketHelper; class LTSWEBSOCKETCLIENT_EXPORT LtsWebSocketClient : public QObject , public ReplyHandler { Q_OBJECT public: explicit LtsWebSocketClient(AbstractClientMessageFactory *messageFactory, QObject *parent = nullptr); ~LtsWebSocketClient(); void open(const QString &hostname, const unsigned short port); void close(); void addReply(ReplyMessage *message) override; signals: void connected(); void disconnected(); void dataReceived(); private slots: void onNewClientMessage(AbstractClientMessage *clientMessage); signals: void onOpen(const QString &hostname, const unsigned short port); void onClose(); void onSendTextMessage(const QString &msg); private: AbstractClientMessageFactory *m_messageFactory; QThread *m_webSocketHelperThread; WebSocketHelper *m_webSocketHelper; LOGGER_T m_logger; }; }