#pragma once #include "client_message_factory.h" #include "logger.h" #include "ltswebsocketclient_export.h" #include #include 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: NGL::INGLLogger& m_logger; AbstractClientMessageFactory* m_messageFactory; QThread* m_webSocketHelperThread; WebSocketHelper* m_webSocketHelper; }; } // namespace LtsWebSocket