Quick CoAP Multicast Discovery Example | Qt CoAP 6.4.1

- Qt 6.4
- Qt CoAP
- Qt CoAP Examples
- Quick CoAP Multicast Discovery Example
- Qt 6.4.1 Reference Documentation

# Quick CoAP Multicast Discovery Example

     // Copyright (C) 2019 The Qt Company Ltd.
     // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

     #ifndef QMLCOAPMULTICASTCLIENT_H
     #define QMLCOAPMULTICASTCLIENT_H

     #include <QCoapClient>
     #include <QCoapResource>

     class QmlCoapResource : public QCoapResource
     {
         Q_GADGET
         Q_PROPERTY(QString title READ title)
         Q_PROPERTY(QString host READ hostStr)
         Q_PROPERTY(QString path READ path)

     public:
         QmlCoapResource() : QCoapResource() {}
         QmlCoapResource(const QCoapResource &resource)
             : QCoapResource(resource) {}

         QString hostStr() const { return host().toString(); }
     };
     Q_DECLARE_METATYPE(QmlCoapResource)

     class QmlCoapMulticastClient : public QCoapClient
     {
         Q_OBJECT

     public:
         QmlCoapMulticastClient(QObject *parent = nullptr);

         Q_INVOKABLE void discover(const QString &host, int port, const QString &discoveryPath);
         Q_INVOKABLE void discover(QtCoap::MulticastGroup group, int port, const QString &discoveryPath);

     Q_SIGNALS:
         void discovered(const QmlCoapResource &resource);
         void finished(int error);

     public slots:
         void onDiscovered(QCoapResourceDiscoveryReply *reply, const QList<QCoapResource> &resources);
     };

     #endif // QMLCOAPMULTICASTCLIENT_H