This repository has been archived on 2026-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
2018-09-02 22:41:48 +02:00

41 lines
1021 B
C++

#ifndef TCPSOCKETTRANSPORT_H
#define TCPSOCKETTRANSPORT_H
#include "nymeatransportinterface.h"
#include <QObject>
#include <QSslSocket>
#include <QUrl>
class TcpSocketTransportFactory: public NymeaTransportInterfaceFactory
{
public:
NymeaTransportInterface* createTransport(QObject *parent = nullptr) const override;
QStringList supportedSchemes() const override;
};
class TcpSocketTransport: public NymeaTransportInterface
{
Q_OBJECT
public:
explicit TcpSocketTransport(QObject *parent = nullptr);
bool connect(const QUrl &url) override;
ConnectionState connectionState() const override;
void disconnect() override;
void sendData(const QByteArray &data) override;
void ignoreSslErrors(const QList<QSslError> &errors) override;
private slots:
void onConnected();
void onEncrypted();
void socketReadyRead();
void onSocketStateChanged(const QAbstractSocket::SocketState &state);
private:
QSslSocket m_socket;
QUrl m_url;
};
#endif // TCPSOCKETTRANSPROT_H