QServiceInterfaceDescriptor Class Reference
The QServiceInterfaceDescriptor class identifies a service implementation. More...
#include <QServiceInterfaceDescriptor>
Public Types
enum | Attribute { Capabilities, Location, ServiceDescription, InterfaceDescription } |
Public Functions
QServiceInterfaceDescriptor () | |
QServiceInterfaceDescriptor ( const QServiceInterfaceDescriptor & other ) | |
~QServiceInterfaceDescriptor () | |
QVariant | attribute ( QServiceInterfaceDescriptor::Attribute which ) const |
QString | customAttribute ( const QString & which ) const |
QStringList | customAttributes () const |
QString | interfaceName () const |
bool | isValid () const |
int | majorVersion () const |
int | minorVersion () const |
QService::Scope | scope () const |
QString | serviceName () const |
bool | operator!= ( const QServiceInterfaceDescriptor & other ) const |
QServiceInterfaceDescriptor & | operator= ( const QServiceInterfaceDescriptor & other ) |
bool | operator== ( const QServiceInterfaceDescriptor & other ) const |
Related Non-Members
QDataStream & | operator<< ( QDataStream & out, const QServiceInterfaceDescriptor & dc ) |
QDataStream & | operator>> ( QDataStream & in, QServiceInterfaceDescriptor & dc ) |
Detailed Description
The QServiceInterfaceDescriptor class identifies a service implementation.
A service can implement multiple interfaces and each interface can have multiple implementations. The QServiceInterfaceDescriptor class enscapsulates this information, as illustrated by the diagram below.
The major version tag indicates the interface version and the minor version tag identifies the implementation version. Subsequent versions of the same interface must be binary compatible to previous versions of the same interface.
In the above example service A and B implement the interface com.nokia.qt.x. In fact Service A provides two different implementations for the very same interface. This is indicated by the changed minor version number. Although Service B is using the same interface it's implementation actually utilizes the second version of the interface com.nokia.qt.x. Binary compatibility guarantees that clients who know version 1 can utilize version 2. If an existing interface has to be changed in a non-compatible way a new interface (name) is required.
Namespaces
A QServiceInterfaceDescriptor (the quadruble of service name, interface name, interface version and implementation version) uniquely identifies a service implementation on a device. Interface names follow the java namespace convention.
The namespace com.nokia.qt.* is reserved for future Qt development.