00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef QXMPPREMOTEMETHOD_H
00025 #define QXMPPREMOTEMETHOD_H
00026
00027 #include <QObject>
00028 #include <QVariant>
00029
00030 #include "QXmppRpcIq.h"
00031
00032 class QXmppClient;
00033
00034 struct QXmppRemoteMethodResult {
00035 QXmppRemoteMethodResult() : hasError(false), code(0) { }
00036 bool hasError;
00037 int code;
00038 QString errorMessage;
00039 QVariant result;
00040 };
00041
00042 class QXmppRemoteMethod : public QObject
00043 {
00044 Q_OBJECT
00045 public:
00046 QXmppRemoteMethod(const QString &jid, const QString &method, const QVariantList &args, QXmppClient *client);
00047 QXmppRemoteMethodResult call( );
00048
00049 private slots:
00050 void gotError( const QXmppRpcErrorIq &iq );
00051 void gotResult( const QXmppRpcResponseIq &iq );
00052
00053 signals:
00054 void callDone();
00055
00056 private:
00057 QXmppRpcInvokeIq m_payload;
00058 QXmppClient *m_client;
00059 QXmppRemoteMethodResult m_result;
00060
00061 };
00062
00063 #endif // QXMPPREMOTEMETHOD_H