KDNSSD::ServiceTypeBrowser Class

class KDNSSD::ServiceTypeBrowser

Browses the service types being published on a domain. More...

Header: #include <KDNSSD/ServiceTypeBrowser>
CMake: find_package(KF6 REQUIRED COMPONENTS DNSSD)
target_link_libraries(mytarget PRIVATE KF6::DNSSD)
Inherits: QObject

Public Functions

ServiceTypeBrowser(const QString &domain = QString(), QObject *parent = nullptr)
QStringList serviceTypes() const
void startBrowse()

Signals

void finished()
void serviceTypeAdded(const QString &type)
void serviceTypeRemoved(const QString &type)

Detailed Description

This class is mostly useful for generic utilities for browsing all the published service types on a local network. Applications that wish to find out about available services of a particular type (such as web servers) should use ServiceBrowser.

ServiceTypeBrowser provides a list of all the service types published by at least one service on a given domain.

Member Function Documentation

[explicit] ServiceTypeBrowser::ServiceTypeBrowser(const QString &domain = QString(), QObject *parent = nullptr)

Creates a ServiceTypeBrowser for a domain.

The link-local domain (the LAN subnet for this computer) will be used if no domain is given. DomainBrowser can be used to get a list of browsing domains.

Note that WAN domains may not support service type browsing.

domain is a browsing domain to search

parent is the parent object (see QObject documentation)

See also startBrowse() and ServiceBrowser::isAvailable().

[signal] void ServiceTypeBrowser::finished()

Emitted when the list of published service types has settled.

Note: This signal is emitted once after startBrowse() is called when the types of all the services that are currently published have been reported (even if no services are available or the DNS-SD service is not available). It is emitted again when a new batch of service types become available or disappear.

For example, if a new host is connected to network and announces services of several new types, they will be reported by several serviceTypeAdded() signals and the whole batch will be concluded by finished().

This signal can be used by applications that just want to get a list of the currently available service types (similar to a directory listing) and do not care about adding or removing service types that appear or disappear later.

See also serviceTypeAdded() and serviceTypeRemoved().

[signal] void ServiceTypeBrowser::serviceTypeAdded(const QString &type)

A new type of service has been found.

type is the service type

See also serviceTypeAdded() and finished().

[signal] void ServiceTypeBrowser::serviceTypeRemoved(const QString &type)

Emitted when there are no more services of this type.

Warning: This signal is not reliable: it is possible that it will not be emitted even after last service of this type disappeared

type is the service type

See also serviceTypeAdded() and finished().

QStringList ServiceTypeBrowser::serviceTypes() const

All the service types currently being published.

Returns a list of service types, in the form _type._tcp or _type._udp

void ServiceTypeBrowser::startBrowse()

Starts browsing for published services.

Note: Only the first call to this function will have any effect.

Browsing stops when the ServiceTypeBrowser object is destroyed.

Warning: The serviceTypeAdded() signal may be emitted before this function returns.

See also serviceTypeAdded(), serviceTypeRemoved(), and finished().