Tp::ChannelDetails Struct Reference

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

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

`#include <TelepathyQt/Types>`

## Public Attributes
QDBusObjectPath | channel
QVariantMap | properties

## Detailed Description

Structure type generated from the specification.

Enough details of a channel that clients can work out how to dispatch or handle it.

## Member Data Documentation

QDBusObjectPath Tp::ChannelDetails::channel

The object path of the channel.

QVariantMap Tp::ChannelDetails::properties

Properties of the channel.

Connection managers MUST NOT include properties in this mapping if their values can change. Clients MUST ignore properties that appear in this mapping if their values can change.

If properties that could change were included, the following race condition would be likely to exist in some cases:

- NewChannels or Get("Channels") includes a property P with value V1
- Client creates a proxy object for the channel
- The value of P changes to V2
- Client connects to PChanged signal
- Client should call Get("P") or GetAll here, to avoid the race, but client's author has forgotten to do so
- Proxy object thinks P == V1, but actually P == V2

We've taken the opportunity to make the API encourage the client author to get it right. Where possible, we intend that properties whose value will be used in channel dispatching or other "early" processing will be defined so that they are immutable (can never change).

Each dictionary MUST contain the keys ChannelInterface::ChannelType , ChannelInterface::TargetHandleType , ChannelInterface::TargetHandle , ChannelInterface::TargetID and ChannelInterface::Requested .

We expect these to be crucial to the channel-dispatching process.