Skip to content

Commit

Permalink
adding qmqtt libraries
Browse files Browse the repository at this point in the history
  • Loading branch information
cagnulein committed Nov 12, 2024
1 parent c85e838 commit d30587f
Show file tree
Hide file tree
Showing 32 changed files with 7,970 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/homeform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@
#include <QUrlQuery>
#include <chrono>

#include "mqtt/qmqttclient.h"

homeform *homeform::m_singleton = 0;
using namespace std::chrono_literals;

Expand Down Expand Up @@ -707,6 +709,10 @@ homeform::homeform(QQmlApplicationEngine *engine, bluetooth *bl) {
QtAndroid::androidContext().object());
#endif

QMqttClient* m_client = new QMqttClient();
m_client->setHostname("192.168.0.113");
m_client->setPort(8000);

bluetoothManager->homeformLoaded = true;
}

Expand Down
149 changes: 149 additions & 0 deletions src/mqtt/qmqttauthenticationproperties.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
/******************************************************************************
**
** Copyright (C) 2018 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtMqtt module.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
******************************************************************************/

#include "qmqttauthenticationproperties.h"

QT_BEGIN_NAMESPACE

/*!
\class QMqttAuthenticationProperties
\inmodule QtMqtt
\since 5.12
\brief The QMqttAuthenticationProperties class represents configuration
options during the authentication process.
\note Authentication properties are part of the MQTT 5.0 specification and
cannot be used when connecting with a lower protocol level. See
QMqttClient::ProtocolVersion for more information.
*/

class QMqttAuthenticationPropertiesData : public QSharedData
{
public:
QString authenticationMethod;
QByteArray authenticationData;
QString reason;
QMqttUserProperties userProperties;
};

/*!
\internal
*/
QMqttAuthenticationProperties::QMqttAuthenticationProperties() : data(new QMqttAuthenticationPropertiesData)
{

}

/*!
\internal
*/
QMqttAuthenticationProperties::QMqttAuthenticationProperties(const QMqttAuthenticationProperties &) = default;

QMqttAuthenticationProperties &QMqttAuthenticationProperties::operator=(const QMqttAuthenticationProperties &rhs)
{
if (this != &rhs)
data.operator=(rhs.data);
return *this;
}

QMqttAuthenticationProperties::~QMqttAuthenticationProperties() = default;

/*!
Returns the authentication method.
*/
QString QMqttAuthenticationProperties::authenticationMethod() const
{
return data->authenticationMethod;
}

/*!
Sets the authentication method to \a method.
*/
void QMqttAuthenticationProperties::setAuthenticationMethod(const QString &method)
{
data->authenticationMethod = method;
}

/*!
Returns the authentication data
*/
QByteArray QMqttAuthenticationProperties::authenticationData() const
{
return data->authenticationData;
}

/*!
Sets the authentication data to \a adata.
Authentication data can only be used if an authentication method has
been specified.
\sa authenticationMethod()
*/
void QMqttAuthenticationProperties::setAuthenticationData(const QByteArray &adata)
{
data->authenticationData = adata;
}

/*!
Returns the reason string. The reason string specifies the reason for
a disconnect.
*/
QString QMqttAuthenticationProperties::reason() const
{
return data->reason;
}

/*!
Sets the reason string to \a r.
*/
void QMqttAuthenticationProperties::setReason(const QString &r)
{
data->reason = r;
}

/*!
Returns the user properties.
*/
QMqttUserProperties QMqttAuthenticationProperties::userProperties() const
{
return data->userProperties;
}

/*!
Sets the user properties to \a user.
*/
void QMqttAuthenticationProperties::setUserProperties(const QMqttUserProperties &user)
{
data->userProperties = user;
}

QT_END_NAMESPACE
71 changes: 71 additions & 0 deletions src/mqtt/qmqttauthenticationproperties.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/******************************************************************************
**
** Copyright (C) 2018 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the QtMqtt module.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
******************************************************************************/

#ifndef QMQTTAUTHENTICATIONPROPERTIES_H
#define QMQTTAUTHENTICATIONPROPERTIES_H

#include "qmqttglobal.h"
#include "qmqtttype.h"

#include <QtCore/QHash>
#include <QtCore/QObject>
#include <QtCore/QSharedDataPointer>
#include <QtCore/QString>

QT_BEGIN_NAMESPACE

class QMqttAuthenticationPropertiesData;

class Q_MQTT_EXPORT QMqttAuthenticationProperties
{
public:
QMqttAuthenticationProperties();
QMqttAuthenticationProperties(const QMqttAuthenticationProperties &);
QMqttAuthenticationProperties &operator=(const QMqttAuthenticationProperties &);
~QMqttAuthenticationProperties();

QString authenticationMethod() const;
void setAuthenticationMethod(const QString &method);

QByteArray authenticationData() const;
void setAuthenticationData(const QByteArray &adata);

QString reason() const;
void setReason(const QString &r);

QMqttUserProperties userProperties() const;
void setUserProperties(const QMqttUserProperties &user);

private:
QSharedDataPointer<QMqttAuthenticationPropertiesData> data;
};

QT_END_NAMESPACE

#endif // QMQTTAUTHENTICATIONPROPERTIES_H
Loading

0 comments on commit d30587f

Please sign in to comment.