File indexing completed on 2024-04-28 15:22:06

0001 /*
0002     This file is part of the KDE project
0003 
0004     SPDX-FileCopyrightText: 2004 Jakub Stachowski <qbast@go2.pl>
0005 
0006     SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #ifndef MDNSD_SDEVENT_H
0010 #define MDNSD_SDEVENT_H
0011 
0012 #include <QEvent>
0013 #include <QMap>
0014 #include <QString>
0015 
0016 namespace KDNSSD
0017 {
0018 enum Operation { SD_ERROR = 101, SD_ADDREMOVE, SD_PUBLISH, SD_RESOLVE };
0019 
0020 class ErrorEvent : public QEvent
0021 {
0022 public:
0023     ErrorEvent()
0024         : QEvent((QEvent::Type)(QEvent::User + SD_ERROR))
0025     {
0026     }
0027 };
0028 class AddRemoveEvent : public QEvent
0029 {
0030 public:
0031     enum Operation { Add, Remove };
0032     AddRemoveEvent(Operation op, const QString &name, const QString &type, const QString &domain, bool last)
0033         : QEvent((QEvent::Type)(QEvent::User + SD_ADDREMOVE))
0034         , m_op(op)
0035         , m_name(name)
0036         , m_type(type)
0037         , m_domain(domain)
0038         , m_last(last)
0039     {
0040     }
0041 
0042     const Operation m_op;
0043     const QString m_name;
0044     const QString m_type;
0045     const QString m_domain;
0046     const bool m_last;
0047 };
0048 
0049 class PublishEvent : public QEvent
0050 {
0051 public:
0052     PublishEvent(const QString &name)
0053         : QEvent((QEvent::Type)(QEvent::User + SD_PUBLISH))
0054         , m_name(name)
0055     {
0056     }
0057 
0058     const QString m_name;
0059 };
0060 
0061 class ResolveEvent : public QEvent
0062 {
0063 public:
0064     ResolveEvent(const QString &hostname, unsigned short port, const QMap<QString, QByteArray> &txtdata)
0065         : QEvent((QEvent::Type)(QEvent::User + SD_RESOLVE))
0066         , m_hostname(hostname)
0067         , m_port(port)
0068         , m_txtdata(txtdata)
0069     {
0070     }
0071 
0072     const QString m_hostname;
0073     const unsigned short m_port;
0074     const QMap<QString, QByteArray> m_txtdata;
0075 };
0076 
0077 }
0078 
0079 #endif