Tp::RequestableChannelClass Struct Reference

| Home · All Classes · All Namespaces · Modules · Functions · Files

Public Attributes | List of all members
Tp::RequestableChannelClass Struct Reference
Structure types

`#include <TelepathyQt/Types>`

## Public Attributes
QVariantMap | fixedProperties
QStringList | allowedProperties

## Detailed Description

Structure type generated from the specification.

Structure representing a class of channels that can be requested, identified by a set of properties that identify that class of channel.

This will often just be the channel type and the handle type, but can include other properties of the channel - for instance, encrypted channels might require properties that unencrypted channels do not, like an encryption key.

In some cases, these classes of channel may overlap, in the sense that one class fixes all the properties that another class does, plus some more properties.

For older clients to still be able to understand how to request channels in the presence of a hypothetical "encryption" interface, we'd need to represent it like this:

- class 1: ChannelType = Text, TargetHandleType = CONTACT
- class 2: Channel.ChannelType = Text, Channel.TargetHandleType = CONTACT, Encryption.Encrypted = TRUE

## Member Data Documentation

QVariantMap Tp::RequestableChannelClass::fixedProperties

The property values that identify this requestable channel class. These properties MUST be included in requests for a channel of this class, and MUST take these values.

Clients that do not understand the semantics of all the Fixed_Properties MUST NOT request channels of this class, since they would be unable to avoid making an incorrect request.

This implies that connection managers wishing to make channels available to old or minimal clients SHOULD have a channel class with the minimum number of Fixed_Properties, and MAY additionally have channel classes with extra Fixed_Properties.

Interface designers SHOULD avoid introducing fixed properties whose types are not serializable in a `.manager` file.

Connection managers with a fixed property that is not serializable cannot have a complete `.manager` file.

QStringList Tp::RequestableChannelClass::allowedProperties

Properties that MAY be set when requesting a channel of this channel type and handle type.

This array MUST NOT include properties that are in the Fixed_Properties mapping.

Properties in this array may either be required or optional, according to their documented semantics.

For instance, if TargetHandleType takes a value that is not Handle_Type_None, one or the other of TargetHandle and TargetID is required. Clients are expected to understand the documented relationship between the properties, so we do not have separate arrays of required and optional properties.

If this array contains the org.freedesktop.Telepathy.Channel.FUTURE.Bundle property, then this class of channel can be combined with other channels with that property in a request, or added to an existing bundle. If not, this signifies that the connection manager is unable to mark channels of this class as part of a bundle - this means that to the remote contact they are likely to be indistinguishable from channels requested separately.