Files
qt6-migration-pipeline/Lts/Common/LtsWebSocket/lts_web_socket_client.h
T

68 lines
1.1 KiB
C++
Executable File

#pragma once
#include <QObject>
#include <QAbstractSocket>
#include <LtsWebSocket/ltswebsocketclient_export.h>
#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;
};
}