diff options
| author | Ian Geiser <ian.geiser@gmail.com> | 2009-11-11 11:09:28 +0000 |
|---|---|---|
| committer | Ian Geiser <ian.geiser@gmail.com> | 2009-11-11 11:09:28 +0000 |
| commit | d9745efcd24e547ba0185732bfc9b0c9f931162e (patch) | |
| tree | c66bc1c52329ea1a21771b74845009a9a0addd70 /source/QXmppClient.cpp | |
| parent | 5b0870ddaac421af2639058648a218c7061cdd6f (diff) | |
| download | qxmpp-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.cpp | 36 |
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(); +} |
