Files
hyperion.ng/include/mdns/MdnsProvider.h
2023-12-30 19:27:53 +01:00

53 lines
1.1 KiB
C++

#ifndef MDNSPROVIDER_H
#define MDNSPROVIDER_H
#include <qmdnsengine/server.h>
#include <qmdnsengine/hostname.h>
#include <qmdnsengine/provider.h>
#include <qmdnsengine/service.h>
// Qt includes
#include <QObject>
#include <QByteArray>
#include <QScopedPointer>
// Utility includes
#include <utils/Logger.h>
class MdnsProvider : public QObject
{
public:
MdnsProvider(QObject* parent = nullptr);
~MdnsProvider() override;
QList<QByteArray> getServiceTypesProvided() const { return _providedServiceTypes.keys(); }
public slots:
///
/// @brief Init MdnsProvider after thread start
///
void init();
void publishService (const QString& serviceType, quint16 servicePort, const QByteArray& serviceName = "");
private slots:
void onHostnameChanged(const QByteArray& hostname);
private:
/// The logger instance for mDNS-Service
Logger* _log;
QScopedPointer<QMdnsEngine::Server> _server;
QScopedPointer<QMdnsEngine::Hostname> _hostname;
/// map of services provided
QMap<QByteArray, QSharedPointer<QMdnsEngine::Provider>> _providedServiceTypes;
};
#endif // MDNSPROVIDER_H