File indexing completed on 2024-04-28 15:22:07
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 #include "mdnsd-servicetypebrowser_p.h" 0010 #include "servicebrowser.h" 0011 #include "servicetypebrowser.h" 0012 0013 namespace KDNSSD 0014 { 0015 ServiceTypeBrowser::ServiceTypeBrowser(const QString &domain, QObject *parent) 0016 : QObject(parent) 0017 , d(new ServiceTypeBrowserPrivate(this)) 0018 { 0019 Q_D(ServiceTypeBrowser); 0020 d->m_browser = new ServiceBrowser("_services._dns-sd._udp", false, domain); 0021 connect(d->m_browser, SIGNAL(serviceAdded(KDNSSD::RemoteService::Ptr)), d, SLOT(newService(KDNSSD::RemoteService::Ptr))); 0022 connect(d->m_browser, SIGNAL(serviceRemoved(KDNSSD::RemoteService::Ptr)), d, SLOT(removeService(KDNSSD::RemoteService::Ptr))); 0023 connect(d->m_browser, SIGNAL(finished()), this, SIGNAL(finished())); 0024 } 0025 0026 ServiceTypeBrowser::~ServiceTypeBrowser() = default; 0027 0028 QStringList ServiceTypeBrowser::serviceTypes() const 0029 { 0030 Q_D(const ServiceTypeBrowser); 0031 return d->m_servicetypes; 0032 } 0033 0034 void ServiceTypeBrowser::startBrowse() 0035 { 0036 Q_D(ServiceTypeBrowser); 0037 d->m_browser->startBrowse(); 0038 } 0039 0040 void ServiceTypeBrowserPrivate::newService(KDNSSD::RemoteService::Ptr srv) 0041 { 0042 QString type = srv->serviceName() + '.' + srv->type(); 0043 m_servicetypes += type; 0044 Q_EMIT m_parent->serviceTypeAdded(type); 0045 } 0046 0047 void ServiceTypeBrowserPrivate::removeService(KDNSSD::RemoteService::Ptr srv) 0048 { 0049 QString type = srv->serviceName() + '.' + srv->type(); 0050 m_servicetypes.removeAll(type); 0051 Q_EMIT m_parent->serviceTypeRemoved(type); 0052 } 0053 0054 } 0055 0056 #include "moc_mdnsd-servicetypebrowser_p.cpp" 0057 #include "moc_servicetypebrowser.cpp"