Home · Modules · All Classes · All Namespaces
Public Slots | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
Tp::Client::ChannelDispatcherInterfaceMessages1Interface Class Reference

#include <TelepathyQt/ChannelDispatcher>

Inherits Tp::AbstractInterface.

Public Slots

QDBusPendingReply< QString > SendMessage (const QDBusObjectPath &account, const QString &targetID, const Tp::MessagePartList &message, uint flags, int timeout=-1)
 

Public Member Functions

 ChannelDispatcherInterfaceMessages1Interface (const QString &busName, const QString &objectPath, QObject *parent=0)
 
 ChannelDispatcherInterfaceMessages1Interface (const QDBusConnection &connection, const QString &busName, const QString &objectPath, QObject *parent=0)
 
 ChannelDispatcherInterfaceMessages1Interface (Tp::DBusProxy *proxy)
 
 ChannelDispatcherInterfaceMessages1Interface (const Tp::Client::ChannelDispatcherInterface &mainInterface)
 
 ChannelDispatcherInterfaceMessages1Interface (const Tp::Client::ChannelDispatcherInterface &mainInterface, QObject *parent)
 
Tp::PendingVariantMaprequestAllProperties () const
 
- Public Member Functions inherited from Tp::AbstractInterface
virtual ~AbstractInterface ()
 
bool isValid () const
 
QString invalidationReason () const
 
QString invalidationMessage () const
 
void setMonitorProperties (bool monitorProperties)
 
bool isMonitoringProperties () const
 

Static Public Member Functions

static QLatin1String staticInterfaceName ()
 

Protected Member Functions

virtual void invalidate (Tp::DBusProxy *, const QString &, const QString &)
 
- Protected Member Functions inherited from Tp::AbstractInterface
 AbstractInterface (DBusProxy *proxy, const QLatin1String &interface)
 
 AbstractInterface (const QString &busName, const QString &path, const QLatin1String &interface, const QDBusConnection &connection, QObject *parent)
 
PendingVariantinternalRequestProperty (const QString &name) const
 
PendingOperationinternalSetProperty (const QString &name, const QVariant &newValue)
 
PendingVariantMapinternalRequestAllProperties () const
 

Additional Inherited Members

- Signals inherited from Tp::AbstractInterface
void propertiesChanged (const QVariantMap &changedProperties, const QStringList &invalidatedProperties)
 
- Protected Slots inherited from Tp::AbstractInterface

Detailed Description

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

Constructor & Destructor Documentation

◆ ChannelDispatcherInterfaceMessages1Interface() [1/5]

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.

◆ ChannelDispatcherInterfaceMessages1Interface() [2/5]

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.

◆ ChannelDispatcherInterfaceMessages1Interface() [3/5]

Tp::Client::ChannelDispatcherInterfaceMessages1Interface::ChannelDispatcherInterfaceMessages1Interface ( Tp::DBusProxy proxy)

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.

◆ ChannelDispatcherInterfaceMessages1Interface() [4/5]

Tp::Client::ChannelDispatcherInterfaceMessages1Interface::ChannelDispatcherInterfaceMessages1Interface ( const Tp::Client::ChannelDispatcherInterface mainInterface)
explicit

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.

◆ ChannelDispatcherInterfaceMessages1Interface() [5/5]

Tp::Client::ChannelDispatcherInterfaceMessages1Interface::ChannelDispatcherInterfaceMessages1Interface ( const Tp::Client::ChannelDispatcherInterface mainInterface,
QObject *  parent 
)

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

◆ staticInterfaceName()

static QLatin1String Tp::Client::ChannelDispatcherInterfaceMessages1Interface::staticInterfaceName ( )
inlinestatic

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

Returns
The D-Bus interface name.

◆ requestAllProperties()

Tp::PendingVariantMap* Tp::Client::ChannelDispatcherInterfaceMessages1Interface::requestAllProperties ( ) const
inline

Request all of the DBus properties on the interface.

Returns
A pending variant map which will emit finished when the properties have been retrieved.

◆ SendMessage

QDBusPendingReply<QString> Tp::Client::ChannelDispatcherInterfaceMessages1Interface::SendMessage ( const QDBusObjectPath &  account,
const QString &  targetID,
const Tp::MessagePartList message,
uint  flags,
int  timeout = -1 
)
inlineslot

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
account
The Account through which to communicate.
targetID
The contact to send the message to.
message
The parts of the message, the same as for Messages.SendMessage.
flags
Flags 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.

◆ invalidate()

void Tp::Client::ChannelDispatcherInterfaceMessages1Interface::invalidate ( Tp::DBusProxy proxy,
const QString &  error,
const QString &  message 
)
protectedvirtual

Reimplemented from Tp::AbstractInterface.