aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppClient.cpp
diff options
context:
space:
mode:
authorIan Geiser <ian.geiser@gmail.com>2009-11-11 11:09:28 +0000
committerIan Geiser <ian.geiser@gmail.com>2009-11-11 11:09:28 +0000
commitd9745efcd24e547ba0185732bfc9b0c9f931162e (patch)
treec66bc1c52329ea1a21771b74845009a9a0addd70 /source/QXmppClient.cpp
parent5b0870ddaac421af2639058648a218c7061cdd6f (diff)
downloadqxmpp-d9745efcd24e547ba0185732bfc9b0c9f931162e.tar.gz
This is the rest of XEP-009. This needs some cleanup and testing still. I am not happy with the implementation, but I am happy with the interface on QXmppClient.
Diffstat (limited to 'source/QXmppClient.cpp')
-rw-r--r--source/QXmppClient.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/source/QXmppClient.cpp b/source/QXmppClient.cpp
index c8b16041..21c96d23 100644
--- a/source/QXmppClient.cpp
+++ b/source/QXmppClient.cpp
@@ -30,6 +30,7 @@
#include "QXmppIbbTransferManager.h"
#include "QXmppInvokable.h"
#include "QXmppRpcIq.h"
+#include "QXmppRemoteMethod.h"
#include "QXmppUtils.h"
/// Creates a QXmppClient object.
@@ -436,3 +437,38 @@ QXmppIbbTransferManager* QXmppClient::getIbbTransferManager() const
{
return m_ibbTransferManager;
}
+
+QXmppRemoteMethodResult QXmppClient::callRemoteMethod( const QString &jid,
+ const QString &interface,
+ const QVariant &arg1,
+ const QVariant &arg2,
+ const QVariant &arg3,
+ const QVariant &arg4,
+ const QVariant &arg5,
+ const QVariant &arg6,
+ const QVariant &arg7,
+ const QVariant &arg8,
+ const QVariant &arg9,
+ const QVariant &arg10 )
+{
+ QVariantList args;
+ if( arg1.isValid() ) args << arg1;
+ if( arg2.isValid() ) args << arg2;
+ if( arg3.isValid() ) args << arg3;
+ if( arg4.isValid() ) args << arg4;
+ if( arg5.isValid() ) args << arg5;
+ if( arg6.isValid() ) args << arg6;
+ if( arg7.isValid() ) args << arg7;
+ if( arg8.isValid() ) args << arg8;
+ if( arg9.isValid() ) args << arg9;
+ if( arg10.isValid() ) args << arg10;
+
+ QXmppRemoteMethod method( jid, interface, args, this );
+ connect( m_stream, SIGNAL(rpcCallResponse(QXmppRpcResponseIq)),
+ &method, SLOT(gotResult(QXmppRpcResponseIq)));
+ connect( m_stream, SIGNAL(rpcCallError(QXmppRpcErrorIq)),
+ &method, SLOT(gotError(QXmppRpcErrorIq)));
+
+
+ return method.call();
+}