KDE 4.7 PyKDE API Reference
  • KDE's Python API
  • Overview
  • PyKDE Home
  • Sitemap
  • Contact Us
 

ServiceBase Class Reference

from PyKDE4.dnssd import *

Inherits:
Namespace: DNSSD

Detailed Description

ServiceBase servicebase.h DNSSD/ServiceBase Describes a service

This class is used to describe a service. The service can be published by the current application (in which case it is probably a PublicService) or by another application, either on the current machine or a remote machine, in which case it is probably a RemoteService returned by ServiceBrowser.

You should not normally need to create a ServiceBase object yourself.

Author:
Jakub Stachowski

See also:
PublicService


Methods

 __init__ (self, QString name=QString(), QString type=QString(), QString domain=QString(), QString host=QString(), int port=0)
 __init__ (self, DNSSD.ServiceBase other)
QString domain (self)
QString hostName (self)
bool operator != (self, DNSSD.ServiceBase o)
bool operator == (self, DNSSD.ServiceBase o)
int port (self)
QString serviceName (self)
{QString:QByteArray} textData (self)
QString type (self)

Method Documentation

__init__ (  self,
QString  name=QString(),
QString  type=QString(),
QString  domain=QString(),
QString  host=QString(),
int  port=0
)

Creates a ServiceBase object

Note that name, type and domain uniquely identify the service in the DNS-SD system, and host and port provide the actual location of the service.

For example, RemoteService populates host and port based on the name, type and domain attributes using the DNS-SD resolution system.

Parameters:
name  service name
type  service type
domain  the DNS-SD domain name for service
host  the host name of the service (a fully-qualified domain name)
port  the port number of the service

__init__ (  self,
DNSSD.ServiceBase  other
)
QString domain (   self )

The domain that the service belongs to

It is "local." for link-local services.

QString hostName (   self )

The hostname of the service

Only valid for local and resolved remote services.

Together with port(), this can be used to actually access the service.

See also:
RemoteService.resolve() and RemoteService.resolveAsync()

bool operator != (  self,
DNSSD.ServiceBase  o
)

Compares services based on name, type and domain

This is enough to for unique identification and omitting port, host and text data allows to compare resolved and unresolved services

Parameters:
o  the service to compare this service to

Returns:
false if this service represents the same service (from the point of view of DNS-SD) as
o, true otherwise

bool operator == (  self,
DNSSD.ServiceBase  o
)

Compares services based on name, type and domain

This is enough to for unique identification and omitting port, host and text data allows to compare resolved and unresolved services

Parameters:
o  the service to compare this service to

Returns:
true if this service represents the same service (from the point of view of DNS-SD) as
o, false otherwise

int port (   self )

The port number of the service

Only valid for local and resolved remote services.

Together with hostName(), this can be used to actually access the service.

See also:
RemoteService.resolve() and RemoteService.resolveAsync()

QString serviceName (   self )

The name of the service

{QString:QByteArray} textData (   self )

Additional text data associated with the service

Only valid for local and resolved remote services.

This is data that provides additional information about the service. For example, it might be used to specify a printer queue on the printer server specified by hostName() and port().

You can check for the data that might be associated with a particular service on the <a href="http://www.dns-sd.org/ServiceTypes.html">service types list. If a key=value pair is given, this will appear with the value in a QByteArray indexed by the key. If the data is on its own (does not have an = in it), it will be used to index an empty QByteArray, and can be checked for with QMap.contains().

For example, if you are accessing the _ipp._tcp service, you might do something like

 QString printerModel = "unknown";
 if (service->textData().contains("ty")) {
     printQueue = QString.fromUtf8(service->textData()["ty"].constData());
 }
since the TXT data of the IPP service may contain data like "ty=Apple LaserWriter Pro 630". Note that you actually have to be a bit more clever than this, since the key should usually be case insensitive.

QString type (   self )

The type of the service

This is always in the format _sometype._udp or _sometype._tcp.

See the DNS-SD website for a full list of service types.

  • Full Index

Modules

  • akonadi
  • dnssd
  • kdecore
  • kdeui
  • khtml
  • kio
  • knewstuff
  • kparts
  • kutils
  • nepomuk
  • phonon
  • plasma
  • polkitqt
  • solid
  • soprano
This documentation is maintained by Simon Edwards.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal