Home · All Classes · All Namespaces · Modules · Functions · Files
Public Slots | Public Member Functions | Static Public Member Functions | Protected Member Functions
Tp::Client::ChannelDispatcherInterfaceMessages1Interface Class Reference

#include <TelepathyQt/ChannelDispatcher>

Inherits Tp::AbstractInterface.

List of all members.

Public Slots

Public Member Functions

Static Public Member Functions

Protected Member Functions


Detailed Description

Proxy class providing a 1:1 mapping of the D-Bus interface "org.freedesktop.Telepathy.ChannelDispatcher.Interface.Messages1".


Constructor & Destructor Documentation

Tp::Client::ChannelDispatcherInterfaceMessages1Interface::ChannelDispatcherInterfaceMessages1Interface ( const QString &  busName,
const QString &  objectPath,
QObject *  parent = 0 
)

Creates a ChannelDispatcherInterfaceMessages1Interface associated with the given object on the session bus.

Parameters:
busNameName of the service the object is on.
objectPathPath to the object on the service.
parentPassed to the parent class constructor.
Tp::Client::ChannelDispatcherInterfaceMessages1Interface::ChannelDispatcherInterfaceMessages1Interface ( const QDBusConnection &  connection,
const QString &  busName,
const QString &  objectPath,
QObject *  parent = 0 
)

Creates a ChannelDispatcherInterfaceMessages1Interface associated with the given object on the given bus.

Parameters:
connectionThe bus via which the object can be reached.
busNameName of the service the object is on.
objectPathPath to the object on the service.
parentPassed to the parent class constructor.

Creates a ChannelDispatcherInterfaceMessages1Interface associated with the same object as the given proxy.

Parameters:
proxyThe proxy to use. It will also be the QObject::parent() for this object.

Creates a ChannelDispatcherInterfaceMessages1Interface associated with the same object as the given proxy. Additionally, the created proxy will have the same parent as the given proxy.

Parameters:
mainInterfaceThe proxy to use.

Creates a ChannelDispatcherInterfaceMessages1Interface associated with the same object as the given proxy. However, a different parent object can be specified.

Parameters:
mainInterfaceThe proxy to use.
parentPassed to the parent class constructor.

Member Function Documentation

Returns the name of the interface "org.freedesktop.Telepathy.ChannelDispatcher.Interface.Messages1", which this class represents.

Returns:
The D-Bus interface name.

Request all of the DBus properties on the interface.

Returns:
A pending variant map which will emit finished when the properties have been retrieved.
QDBusPendingReply<QString> Tp::Client::ChannelDispatcherInterfaceMessages1Interface::SendMessage ( const QDBusObjectPath &  account,
const QString &  targetID,
const Tp::MessagePartList message,
uint  flags,
int  timeout = -1 
) [inline, slot]

Begins a call to the D-Bus method SendMessage on the remote object.

Submit a message to the server for sending, like the ChannelInterfaceMessagesInterface::SendMessage() method.

If the Account is connected and a Text channel to the Target_ID already exists, this method is equivalent to sending the same message via that channel.

Otherwise, this method creates a channel (connecting the Account if appropriate), sends the desired message, and closes the channel as if via ChannelInterface::Close() , without acknowledging any messages received on that channel during that time.

If any messages are received on that channel before it is closed, a correct connection manager implementation will reopen the channel when it is closed, resulting in those "rescued" messages being processed by the system's normal ClientHandlerInterface for text channels. In particular, this deals with the situation where a successful or failed delivery report is received before the channel is closed.

Expecting a trivial client (perhaps a send-only IRC bot, or a simple SMS-sending API) to go through all those steps to send a message seems somewhat unreasonable. Having this as a method in the ChannelDispatcher lets it take some short-cuts if required, and centralizes the implementation to reduce the risk of mistakes that cause message loss.

The ChannelDispatcher SHOULD support this method for any connection manager that would accept channel requests of this form:

  {
   …  ChannelInterface::ChannelType   :
       …  ChannelTypeTextInterface  ,
   …  ChannelInterface::TargetHandleType   :
       Contact,
   …  ChannelInterface::TargetID   :
   Target_ID
 }

However, if the connection manager provides additional APIs (such as a way to open "send-only" channels), the ChannelDispatcher MAY use those: it is not required to use those exact request parameters.

This method may raise any error that would be raised by the ConnectionInterfaceRequestsInterface::EnsureChannel() or ChannelInterfaceMessagesInterface::SendMessage() methods, or signalled by the ChannelRequestInterface::Failed() signal.

Note that timeout is ignored as of now. It will be used once http://bugreports.qt.nokia.com/browse/QTBUG-11775 is fixed.

Parameters:
accountThe Account through which to communicate.
targetIDThe contact to send the message to.
messageThe parts of the message, the same as for Messages.SendMessage.
flagsFlags influencing how to send the message, the same as for Messages.SendMessage.
timeoutThe timeout in milliseconds.
Returns:

An opaque token equivalent to the one returned by Messages.SendMessage.

void Tp::Client::ChannelDispatcherInterfaceMessages1Interface::invalidate ( Tp::DBusProxy proxy,
const QString &  error,
const QString &  message 
) [protected, virtual]

Reimplemented from Tp::AbstractInterface.


Copyright © 2008-2011 Collabora Ltd. and Nokia Corporation
Telepathy-Qt 0.9.4