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