KDNSSD::RemoteService Class

class KDNSSD::RemoteService

Describes a service published over DNS-SD, typically on a remote machine. More...

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

Public Functions

RemoteService(const QString &name, const QString &type, const QString &domain)
bool isResolved() const
bool resolve()
void resolveAsync()

Signals

void resolved(bool successful)

Detailed Description

This class allows delayed or asynchronous resolution of services. As the name suggests, the service is normally on a remote machine, but the service could just as easily be published on the local machine.

RemoteService instances are normally provided by ServiceBrowser, but can be used to resolve any service if you know the name, type and domain for it.

See also ServiceBrowser.

Member Function Documentation

RemoteService::RemoteService(const QString &name, const QString &type, const QString &domain)

Creates an unresolved RemoteService representing the service with the given name, type and domain.

name is the name of the service

type is the type of the service (see ServiceBrowser::ServiceBrowser())

domain is the domain of the service

See also ServiceBrowser::isAvailable().

bool RemoteService::isResolved() const

Whether the service has been successfully resolved.

Returns true if hostName() and port() will return valid values, false otherwise

bool RemoteService::resolve()

Resolves the host name and port of service synchronously.

The host name is not resolved into an IP address - use KResolver for that.

Note: resolved() is emitted before this function is returned.

resolve() will not cause RemoteService to monitor for changes in the hostname or port of the service.

Returns true if successful, false on failure

See also resolveAsync(), hostName(), and port().

void RemoteService::resolveAsync()

Resolves the host name and port of service asynchronously.

Note: The host name is not resolved into an IP address - use KResolver for that.

The resolved() signal will be emitted when the resolution is complete, or when it fails.

Note: resolved() may be emitted before this function returns in case of immediate failure.

RemoteService will keep monitoring the service for changes in hostname and port, and re-emit resolved() when either changes.

See also resolve(), hostName(), and port().

[signal] void RemoteService::resolved(bool successful)

Emitted when resolving is complete

If operating in asynchronous mode this signal can be emitted several times (when the hostName or port of the service changes).

successful is true if the hostName and port were successfully resolved, false otherwise