Tp::Service::ConnectionInterfaceContactCapabilitiesAdaptor Class Reference

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

Public Slots | Signals | List of all members
Tp::Service::ConnectionInterfaceContactCapabilitiesAdaptor Class Reference
Connection service implementation

`#include <TelepathyQt/_gen/svc-connection.h>`

Inherits Tp::AbstractAdaptor.

## Public Slots
void | UpdateCapabilities (const Tp::HandlerCapabilitiesList &handlerCapabilities, const QDBusMessage &dbusMessage)
Tp::ContactCapabilitiesMap | GetContactCapabilities (const Tp::UIntList &handles, const QDBusMessage &dbusMessage)

## Signals
void | ContactCapabilitiesChanged (const Tp::ContactCapabilitiesMap &caps)

## Additional Inherited Members
Public Member Functions inherited from Tp::AbstractAdaptor
| AbstractAdaptor (const QDBusConnection &connection, QObject *adaptee, QObject *parent)
| ~AbstractAdaptor ()
QDBusConnection | dbusConnection () const
QObject * | adaptee () const

## Detailed Description

Adaptor class providing a 1:1 mapping of the D-Bus interface "org.freedesktop.Telepathy.Connection.Interface.ContactCapabilities".

## Member Function Documentation

void Tp::Service::ConnectionInterfaceContactCapabilitiesAdaptor::UpdateCapabilities | ( | const Tp::HandlerCapabilitiesList & | handlerCapabilities,
|  | const QDBusMessage & | dbusMessage
| ) |  |
| slot

Begins a call to the exported D-Bus method `UpdateCapabilities` on this object.

Adaptees should export this method as a Qt slot with the following signature: void updateCapabilities(const Tp::HandlerCapabilitiesList& handlerCapabilities, const Tp::Service::ConnectionInterfaceContactCapabilitiesAdaptor::UpdateCapabilitiesContextPtr &context);

Implementations should call MethodInvocationContext::setFinished (or setFinishedWithError accordingly) on the received context object once the method has finished processing.

Alter the connection's advertised capabilities to include the intersection of the given clients' capabilities with what the connection manager is able to implement.

On connections managed by the ChannelDispatcher, processes other than the ChannelDispatcher SHOULD NOT call this method, and the ChannelDispatcher SHOULD use this method to advertise the capabilities of all the registered ClientHandlerInterface implementations.On connections not managed by the ChannelDispatcher, clients MAY use this method directly, to indicate the channels they will handle and the extra capabilities they have.

Upon a successful invocation of this method, the connection manager will only emit the ContactCapabilitiesChanged() signal for the user's ConnectionInterface::SelfHandle if, in the underlying protocol, the new capabilities are distinct from the previous state.

The connection manager will essentially intersect the provided capabilities and the channel classes it implements. Therefore, certain properties which are never fixed for a channel class (such as the target handle, or the Parameters property of a tube channel) will almost certainly not be advertised.

This method MAY be called on a newly-created connection while it is still in the DISCONNECTED state, to request that when the connection connects, it will do so with the appropriate capabilities. Doing so MUST NOT fail.

Parameters

  handlerCapabilities |
      The capabilities of one or more clients. For each client in the
      given list, any capabilities previously advertised for the same
      client name are discarded, then replaced by the capabilities
      indicated. As a result, if a client becomes unavailable, this
      method SHOULD be called with a Handler_Capabilities structure
      containing its name, an empty list of channel classes, and an empty
      list of capabilities. When this is done, the connection manager
      SHOULD free all memory associated with that client name. This
      method takes a list of clients so that when the channel dispatcher
      first calls it (with a list of all the Handlers that are initially
      available), the changes can be made atomically, with only one
      transmission of updated capabilities to the network. Afterwards,
      the channel dispatcher will call this method with a single-element
      list every time a Handler becomes available or unavailable. The
      connection manager MUST ignore any channel classes and client
      capabilities for which there is no representation in the protocol
      or no support in the connection manager.

Tp::ContactCapabilitiesMap Tp::Service::ConnectionInterfaceContactCapabilitiesAdaptor::GetContactCapabilities | ( | const Tp::UIntList & | handles,
|  | const QDBusMessage & | dbusMessage
| ) |  |
| slot

Begins a call to the exported D-Bus method `GetContactCapabilities` on this object.

Adaptees should export this method as a Qt slot with the following signature: void getContactCapabilities(const Tp::UIntList& handles, const Tp::Service::ConnectionInterfaceContactCapabilitiesAdaptor::GetContactCapabilitiesContextPtr &context);

Implementations should call MethodInvocationContext::setFinished (or setFinishedWithError accordingly) on the received context object once the method has finished processing.

Returns an array of requestable channel classes for the given contact handles, representing the channel requests that are expected to succeed.

Parameters

  handles | An array of contact handles for this connection. The handle zero MUST NOT be included in the request.

Returns

A map from contact handles to lists of requestable channel classes, representing the channel requests that are expected to succeed for that contact.

Contacts listed among Handles whose capabilities are unknown SHOULD be omitted from this map; contacts known to have an empty set of capabilities SHOULD be included in the keys of this map, with an empty array as the corresponding value.

void Tp::Service::ConnectionInterfaceContactCapabilitiesAdaptor::ContactCapabilitiesChanged | ( | const Tp::ContactCapabilitiesMap & | caps | ) |
| signal

Represents the exported D-Bus signal `ContactCapabilitiesChanged` on this object.

Adaptees should export this signal as a Qt signal with the following signature: void contactCapabilitiesChanged(const Tp::ContactCapabilitiesMap& caps);

The adaptee signal will be automatically relayed as a D-Bus signal once emitted.

Parameters

  caps | All the capabilities of the contacts