00001
00002
00003
00004
00005
00006
00007
00008 #ifndef IN_TP_QT_HEADER
00009 #error IN_TP_QT_HEADER
00010 #endif
00011
00012 #include <TelepathyQt/Types>
00013
00014 #include <QtGlobal>
00015
00016 #include <QString>
00017 #include <QObject>
00018 #include <QVariant>
00019
00020 #include <QDBusPendingReply>
00021
00022 #include <TelepathyQt/AbstractInterface>
00023 #include <TelepathyQt/DBusProxy>
00024 #include <TelepathyQt/Global>
00025
00026 namespace Tp
00027 {
00028 class PendingVariant;
00029 class PendingOperation;
00030 }
00031
00032 namespace Tp
00033 {
00034 namespace Client
00035 {
00036
00044 class TP_QT_EXPORT ChannelDispatchOperationInterface : public Tp::AbstractInterface
00045 {
00046 Q_OBJECT
00047
00048 public:
00055 static inline QLatin1String staticInterfaceName()
00056 {
00057 return QLatin1String("org.freedesktop.Telepathy.ChannelDispatchOperation");
00058 }
00059
00067 ChannelDispatchOperationInterface(
00068 const QString& busName,
00069 const QString& objectPath,
00070 QObject* parent = 0
00071 );
00072
00081 ChannelDispatchOperationInterface(
00082 const QDBusConnection& connection,
00083 const QString& busName,
00084 const QString& objectPath,
00085 QObject* parent = 0
00086 );
00087
00094 ChannelDispatchOperationInterface(Tp::DBusProxy *proxy);
00095
00106 inline Tp::PendingVariant *requestPropertyInterfaces() const
00107 {
00108 return internalRequestProperty(QLatin1String("Interfaces"));
00109 }
00110
00123 inline Tp::PendingVariant *requestPropertyConnection() const
00124 {
00125 return internalRequestProperty(QLatin1String("Connection"));
00126 }
00127
00138 inline Tp::PendingVariant *requestPropertyAccount() const
00139 {
00140 return internalRequestProperty(QLatin1String("Account"));
00141 }
00142
00154 inline Tp::PendingVariant *requestPropertyChannels() const
00155 {
00156 return internalRequestProperty(QLatin1String("Channels"));
00157 }
00158
00176 inline Tp::PendingVariant *requestPropertyPossibleHandlers() const
00177 {
00178 return internalRequestProperty(QLatin1String("PossibleHandlers"));
00179 }
00180
00187 Tp::PendingVariantMap *requestAllProperties() const
00188 {
00189 return internalRequestAllProperties();
00190 }
00191
00192 public Q_SLOTS:
00238 inline QDBusPendingReply<> HandleWith(const QString& handler, int timeout = -1)
00239 {
00240 if (!invalidationReason().isEmpty()) {
00241 return QDBusPendingReply<>(QDBusMessage::createError(
00242 invalidationReason(),
00243 invalidationMessage()
00244 ));
00245 }
00246
00247 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00248 this->staticInterfaceName(), QLatin1String("HandleWith"));
00249 callMessage << QVariant::fromValue(handler);
00250 return this->connection().asyncCall(callMessage, timeout);
00251 }
00252
00306 inline QDBusPendingReply<> Claim(int timeout = -1)
00307 {
00308 if (!invalidationReason().isEmpty()) {
00309 return QDBusPendingReply<>(QDBusMessage::createError(
00310 invalidationReason(),
00311 invalidationMessage()
00312 ));
00313 }
00314
00315 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00316 this->staticInterfaceName(), QLatin1String("Claim"));
00317 return this->connection().asyncCall(callMessage, timeout);
00318 }
00319
00350 inline QDBusPendingReply<> HandleWithTime(const QString& handler, qlonglong userActionTime, int timeout = -1)
00351 {
00352 if (!invalidationReason().isEmpty()) {
00353 return QDBusPendingReply<>(QDBusMessage::createError(
00354 invalidationReason(),
00355 invalidationMessage()
00356 ));
00357 }
00358
00359 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00360 this->staticInterfaceName(), QLatin1String("HandleWithTime"));
00361 callMessage << QVariant::fromValue(handler) << QVariant::fromValue(userActionTime);
00362 return this->connection().asyncCall(callMessage, timeout);
00363 }
00364
00365 Q_SIGNALS:
00411 void ChannelLost(const QDBusObjectPath& channel, const QString& error, const QString& message);
00412
00455 void Finished();
00456
00457 protected:
00458 virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
00459 };
00460 }
00461 }
00462 Q_DECLARE_METATYPE(Tp::Client::ChannelDispatchOperationInterface*)