aboutsummaryrefslogtreecommitdiffstats
path: root/src/coap/qcoapconnection_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/coap/qcoapconnection_p.h')
-rw-r--r--src/coap/qcoapconnection_p.h51
1 files changed, 49 insertions, 2 deletions
diff --git a/src/coap/qcoapconnection_p.h b/src/coap/qcoapconnection_p.h
index d75c794..200744d 100644
--- a/src/coap/qcoapconnection_p.h
+++ b/src/coap/qcoapconnection_p.h
@@ -30,9 +30,12 @@
#ifndef QCOAPCONNECTION_P_H
#define QCOAPCONNECTION_P_H
-#include <QtCoap/qcoapconnection.h>
+#include <QtCoap/qcoapnamespace.h>
+#include <QtCoap/qcoapsecurityconfiguration.h>
#include <QtCore/qqueue.h>
+#include <QtCore/qobject.h>
+#include <QtNetwork/qabstractsocket.h>
#include <private/qobject_p.h>
//
@@ -48,6 +51,50 @@
QT_BEGIN_NAMESPACE
+class QCoapConnectionPrivate;
+class Q_AUTOTEST_EXPORT QCoapConnection : public QObject
+{
+ Q_OBJECT
+public:
+ enum class ConnectionState : quint8 {
+ Unconnected,
+ Bound
+ };
+
+ explicit QCoapConnection(QtCoap::SecurityMode securityMode = QtCoap::SecurityMode::NoSecurity,
+ QObject *parent = nullptr);
+ virtual ~QCoapConnection();
+
+ bool isSecure() const;
+ QtCoap::SecurityMode securityMode() const;
+ ConnectionState state() const;
+ QCoapSecurityConfiguration securityConfiguration() const;
+
+ Q_INVOKABLE void setSecurityConfiguration(const QCoapSecurityConfiguration &configuration);
+ Q_INVOKABLE void disconnect();
+
+Q_SIGNALS:
+ void error(QAbstractSocket::SocketError error);
+ void readyRead(const QByteArray &data, const QHostAddress &sender);
+ void bound();
+ void securityConfigurationChanged();
+
+private:
+ void startToSendRequest();
+
+protected:
+ QCoapConnection(QObjectPrivate &dd, QObject *parent = nullptr);
+
+ virtual void bind(const QString &host, quint16 port) = 0;
+ virtual void writeData(const QByteArray &data, const QString &host, quint16 port) = 0;
+ virtual void close() = 0;
+
+private:
+ friend class QCoapProtocolPrivate;
+
+ Q_DECLARE_PRIVATE(QCoapConnection)
+};
+
struct CoapFrame {
QByteArray currentPdu;
QString host;
@@ -60,7 +107,7 @@ struct CoapFrame {
class Q_AUTOTEST_EXPORT QCoapConnectionPrivate : public QObjectPrivate
{
public:
- QCoapConnectionPrivate(QtCoap::SecurityMode security = QtCoap::SecurityMode::NoSec);
+ QCoapConnectionPrivate(QtCoap::SecurityMode security = QtCoap::SecurityMode::NoSecurity);
~QCoapConnectionPrivate() override = default;