Tp::Service::ChannelInterfaceHoldAdaptor Class Reference

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

Public Slots | Signals | List of all members
Tp::Service::ChannelInterfaceHoldAdaptor Class Reference
Channel service implementation

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

Inherits Tp::AbstractAdaptor.

## Public Slots
uint | GetHoldState (const QDBusMessage &dbusMessage, uint &reason)
void | RequestHold (bool hold, const QDBusMessage &dbusMessage)

## Signals
void | HoldStateChanged (uint holdState, uint reason)

## 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.Channel.Interface.Hold".

## Member Function Documentation

uint Tp::Service::ChannelInterfaceHoldAdaptor::GetHoldState | ( | const QDBusMessage & | dbusMessage,
|  | uint & | reason
| ) |  |
| slot

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

Adaptees should export this method as a Qt slot with the following signature: void getHoldState(const Tp::Service::ChannelInterfaceHoldAdaptor::GetHoldStateContextPtr &context);

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

Return whether the local user has placed the channel on hold.

Parameters

  reason | Output parameter
      The reason why the channel is in that state

Returns

      The state of the channel

void Tp::Service::ChannelInterfaceHoldAdaptor::RequestHold | ( | bool | hold,
|  | const QDBusMessage & | dbusMessage
| ) |  |
| slot

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

Adaptees should export this method as a Qt slot with the following signature: void requestHold(bool hold, const Tp::Service::ChannelInterfaceHoldAdaptor::RequestHoldContextPtr &context);

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

Request that the channel be put on hold (be instructed not to send any media streams to you) or be taken off hold.

If the connection manager can immediately tell that the requested state change could not possibly succeed, this method SHOULD return the NotAvailable error. If the requested state is the same as the current state, this method SHOULD return successfully without doing anything.

Otherwise, this method SHOULD immediately set the hold state to Local_Hold_State_Pending_Hold or Local_Hold_State_Pending_Unhold (as appropriate), emitting HoldStateChanged() if this is a change, and return successfully.

The eventual success or failure of the request is indicated by a subsequent HoldStateChanged signal, changing the hold state to Local_Hold_State_Held or Local_Hold_State_Unheld.

If the channel has multiple streams, and the connection manager succeeds in changing the hold state of one stream but fails to change the hold state of another, it SHOULD attempt to revert all streams to their previous hold states.

The following state transitions SHOULD be used, where appropriate:

- Successful hold: (Unheld, any reason) → (Pending_Hold, Requested) → (Held, Requested)
- Successful unhold: (Held, any reason) → (Pending_Unhold, Requested) → (Unheld, Requested)
- Attempting to unhold fails at the first attempt to acquire a resource: (Held, any reason) → (Pending_Unhold, Requested) → (Held, Resource_Not_Available)
- Attempting to unhold acquires one resource, but fails to acquire a second, and takes time to release the first: (Held, any reason) → (Pending_Unhold, Requested) → (Pending_Hold, Resource_Not_Available) → (Held, Resource_Not_Available)

Parameters

  hold |
      A boolean indicating whether or not the channel should be on hold

void Tp::Service::ChannelInterfaceHoldAdaptor::HoldStateChanged | ( | uint | holdState,
|  | uint | reason
| ) |  |
| signal

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

Adaptees should export this signal as a Qt signal with the following signature: void holdStateChanged(uint holdState, uint reason);

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

Parameters

  holdState |
      The state of the channel
  reason |
      The reason for the state change