00001
00002
00003
00004
00005
00006
00007
00008 #ifndef IN_TELEPATHY_QT4_HEADER
00009 #error IN_TELEPATHY_QT4_HEADER
00010 #endif
00011
00012 #include <TelepathyQt4/Types>
00013
00014 #include <QtGlobal>
00015
00016 #include <QString>
00017 #include <QObject>
00018 #include <QVariant>
00019
00020 #include <QDBusPendingReply>
00021
00022 #include <TelepathyQt4/AbstractInterface>
00023 #include <TelepathyQt4/DBusProxy>
00024 #include <TelepathyQt4/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 TELEPATHY_QT4_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:
00234 inline QDBusPendingReply<> HandleWith(const QString& handler, int timeout = -1)
00235 {
00236 if (!invalidationReason().isEmpty()) {
00237 return QDBusPendingReply<>(QDBusMessage::createError(
00238 invalidationReason(),
00239 invalidationMessage()
00240 ));
00241 }
00242
00243 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00244 this->staticInterfaceName(), QLatin1String("HandleWith"));
00245 callMessage << QVariant::fromValue(handler);
00246 return this->connection().asyncCall(callMessage, timeout);
00247 }
00248
00300 inline QDBusPendingReply<> Claim(int timeout = -1)
00301 {
00302 if (!invalidationReason().isEmpty()) {
00303 return QDBusPendingReply<>(QDBusMessage::createError(
00304 invalidationReason(),
00305 invalidationMessage()
00306 ));
00307 }
00308
00309 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00310 this->staticInterfaceName(), QLatin1String("Claim"));
00311 return this->connection().asyncCall(callMessage, timeout);
00312 }
00313
00338 inline QDBusPendingReply<> HandleWithTime(const QString& handler, qlonglong userActionTime, int timeout = -1)
00339 {
00340 if (!invalidationReason().isEmpty()) {
00341 return QDBusPendingReply<>(QDBusMessage::createError(
00342 invalidationReason(),
00343 invalidationMessage()
00344 ));
00345 }
00346
00347 QDBusMessage callMessage = QDBusMessage::createMethodCall(this->service(), this->path(),
00348 this->staticInterfaceName(), QLatin1String("HandleWithTime"));
00349 callMessage << QVariant::fromValue(handler) << QVariant::fromValue(userActionTime);
00350 return this->connection().asyncCall(callMessage, timeout);
00351 }
00352
00353 Q_SIGNALS:
00395 void ChannelLost(const QDBusObjectPath& channel, const QString& error, const QString& message);
00396
00437 void Finished();
00438
00439 protected:
00440 virtual void invalidate(Tp::DBusProxy *, const QString &, const QString &);
00441 };
00442 }
00443 }
00444 Q_DECLARE_METATYPE(Tp::Client::ChannelDispatchOperationInterface*)