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

Signals | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions
Tp::DBusTubeChannel Class Reference
Channel proxies

The DBusTubeChannel class represents a Telepathy channel of type DBusTube. More...

`#include <TelepathyQt/DBusTubeChannel>`

Inherits Tp::TubeChannel.

Inherited by Tp::IncomingDBusTubeChannel, and Tp::OutgoingDBusTubeChannel.

List of all members.

## Signals

- void busNameAdded (const QString &busName, const Tp::ContactPtr &contact)
- void busNameRemoved (const QString &busName, const Tp::ContactPtr &contact)

## Public Member Functions

- virtual ~DBusTubeChannel ()
- QString serviceName () const
- bool supportsRestrictingToCurrentUser () const
- QHash< QString, Tp::ContactPtr > contactsForBusNames () const
- QString address () const

## Static Public Member Functions

- static DBusTubeChannelPtr create (const ConnectionPtr &connection, const QString &objectPath, const QVariantMap &immutableProperties)

## Static Public Attributes

- static const Feature FeatureCore
- static const Feature FeatureBusNameMonitoring

## Protected Member Functions

- DBusTubeChannel (const ConnectionPtr &connection, const QString &objectPath, const QVariantMap &immutableProperties)

## Detailed Description

The DBusTubeChannel class represents a Telepathy channel of type DBusTube.

It provides a private bus which can be used as a peer-to-peer connection in case of a Contact Channel, or as a full-fledged bus in case of a Room Channel.

DBusTubeChannel is an intermediate base class; OutgoingDBusTubeChannel and IncomingDBusTubeChannel are the specialized classes used for locally and remotely initiated tubes respectively.

For more details, please refer to Telepathy specification.

See Asynchronous Object Model, Shared Pointer Usage

## Constructor & Destructor Documentation

Tp::DBusTubeChannel::~DBusTubeChannel | ( |  | ) | `[virtual]`

Class destructor.

Tp::DBusTubeChannel::DBusTubeChannel | ( | const ConnectionPtr & | connection,
|  | const QString & | objectPath,
|  | const QVariantMap & | immutableProperties
| ) |  | `[protected]`

Construct a new DBusTubeChannel object.

Parameters:

  connection | Connection owning this channel, and specifying the service.
  objectPath | The object path of this channel.
  immutableProperties | The immutable properties of this channel.

## Member Function Documentation

DBusTubeChannelPtr Tp::DBusTubeChannel::create | ( | const ConnectionPtr & | connection,
|  | const QString & | objectPath,
|  | const QVariantMap & | immutableProperties
| ) |  | `[static]`

Create a new DBusTubeChannel channel.

Parameters:

  connection | Connection owning this channel, and specifying the service.
  objectPath | The object path of this channel.
  immutableProperties | The immutable properties of this channel.

Returns:
  A DBusTubeChannelPtr object pointing to the newly created DBusTubeChannel object.

Reimplemented from Tp::TubeChannel.

Reimplemented in Tp::IncomingDBusTubeChannel, and Tp::OutgoingDBusTubeChannel.

QString Tp::DBusTubeChannel::serviceName | ( |  | ) | const

Returns the service name which will be used over the tube. This should be a well-known and valid DBus service name, in the form "org.my.service".

This method requires DBusTubeChannel::FeatureCore to be enabled.

Returns:
  the service name that will be used over the tube

bool Tp::DBusTubeChannel::supportsRestrictingToCurrentUser | ( |  | ) | const

Checks if this tube is capable to accept or offer a private bus which will allow connections only from the current user

This method is useful only if your appliance is really security-sensitive: in general, this restriction is always enabled by default on all tubes offered or accepted from Telepathy-Qt, falling back to a general connection allowance if this feature is not available.

If your application does not have specific needs regarding DBus credentials, you can trust Telepathy-Qt to do the right thing - in any case, the most secure method available will be used by default.

This method requires DBusTubeChannel::FeatureCore to be enabled.

Returns:
  Whether this DBus tube is capable to accept or offer a private bus restricting access to it to the current user only.

See also:
  IncomingDBusTubeChannel::acceptTube
  OutgoingDBusTubeChannel::offerTube

QHash< QString, Tp::ContactPtr > Tp::DBusTubeChannel::contactsForBusNames | ( |  | ) | const

This function returns all the known active bus names in this tube. It requires FeatureBusNameMonitoring to be activated; however, even a late activation of the feature will make this function return a full list of all the connected bus names, including the ones which appeared before the activation of the feature itself.

This function will always return an empty hash in case the tube is p2p, even if FeatureBusNameMonitoring has been activated.

This method requires FeatureBusNameMonitoring to be enabled.

Returns:
  A list of active connection ids known to this tube

QString Tp::DBusTubeChannel::address | ( |  | ) | const

If the tube has been opened, this function returns the private bus address you should be connecting to for using this tube.

Please note this function will return a meaningful value only if the tube has already been opened successfully: in case of failure or the tube being still pending, an empty QString will be returned.

Note:
  If you plan to use QtDBus for the DBus connection, please note you should always use QDBusConnection::connectToPeer(), regardless of the fact this tube is a p2p or a group one. The above function has been introduced in Qt 4.8, previous versions of Qt do not allow the use of DBus Tubes through QtDBus.

Returns:
  The address of the private bus opened by this tube

void Tp::DBusTubeChannel::busNameAdded | ( | const QString & | busName,
|  | const Tp::ContactPtr & | contact
| ) |  | `[signal]`

Emitted when a new participant joins this tube.

This signal will be emitted only if the tube is a group tube (not p2p), and if the FeatureBusNameMonitoring feature has been enabled.

Parameters:

  busName | The bus name of the new participant
  contact | The ContactPtr identifying the participant

void Tp::DBusTubeChannel::busNameRemoved | ( | const QString & | busName,
|  | const Tp::ContactPtr & | contact
| ) |  | `[signal]`

Emitted when a participant leaves this tube.

This signal will be emitted only if the tube is a group tube (not p2p), and if the FeatureBusNameMonitoring feature has been enabled.

Parameters:

  busName | The bus name of the participant leaving
  contact | The ContactPtr identifying the participant

## Member Data Documentation

const Feature Tp::DBusTubeChannel::FeatureCore `[static]`

Feature representing the core that needs to become ready to make the DBusTubeChannel object usable.

Note that this feature must be enabled in order to use most DBusTubeChannel methods. See specific methods documentation for more details.

Reimplemented from Tp::TubeChannel.

const Feature Tp::DBusTubeChannel::FeatureBusNameMonitoring `[static]`

Feature used in order to monitor bus names in this DBus tube.

See bus name monitoring specific methods' documentation for more details.

See also:
  busNameAdded(), busNameRemoved()