diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-02-08 12:33:41 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-02-08 12:33:41 +0000 |
| commit | 21acd67e9b65bea87902032b12709675905aa922 (patch) | |
| tree | ed5ae9066b10400c4fe6e67dfaf2f4c37a09c32e /src/QXmppRemoteMethod.cpp | |
| parent | cea7ae1e702b82d2d0d0a851de1aae58270b14f6 (diff) | |
| download | qxmpp-21acd67e9b65bea87902032b12709675905aa922.tar.gz | |
start moving client-specific code
Diffstat (limited to 'src/QXmppRemoteMethod.cpp')
| -rw-r--r-- | src/QXmppRemoteMethod.cpp | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/src/QXmppRemoteMethod.cpp b/src/QXmppRemoteMethod.cpp deleted file mode 100644 index 5dd8e9ad..00000000 --- a/src/QXmppRemoteMethod.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) 2008-2011 The QXmpp developers - * - * Authors: - * Ian Reinhart Geiser - * - * Source: - * http://code.google.com/p/qxmpp - * - * This file is a part of QXmpp library. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - */ - -#include "QXmppRemoteMethod.h" -#include "QXmppClient.h" -#include "QXmppUtils.h" - -#include <QDebug> -#include <QEventLoop> -#include <QTimer> - -QXmppRemoteMethod::QXmppRemoteMethod(const QString &jid, const QString &method, const QVariantList &args, QXmppClient *client) : - QObject(client), m_client(client) -{ - m_payload.setTo( jid ); - m_payload.setFrom( client->configuration().jid() ); - m_payload.setMethod( method ); - m_payload.setArguments( args ); -} - -QXmppRemoteMethodResult QXmppRemoteMethod::call( ) -{ - // FIXME : spinning an event loop is a VERY bad idea, it can cause - // us to lose incoming packets - QEventLoop loop(this); - connect( this, SIGNAL(callDone()), &loop, SLOT(quit())); - QTimer::singleShot(30000,&loop, SLOT(quit())); // Timeout incase the other end hangs... - - m_client->sendPacket( m_payload ); - - loop.exec( QEventLoop::ExcludeUserInputEvents | QEventLoop::WaitForMoreEvents ); - return m_result; -} - -void QXmppRemoteMethod::gotError( const QXmppRpcErrorIq &iq ) -{ - if ( iq.id() == m_payload.id() ) - { - m_result.hasError = true; - m_result.errorMessage = iq.error().text(); - m_result.code = iq.error().type(); - emit callDone(); - } -} - -void QXmppRemoteMethod::gotResult( const QXmppRpcResponseIq &iq ) -{ - if ( iq.id() == m_payload.id() ) - { - m_result.hasError = false; - // FIXME: we don't handle multiple responses - m_result.result = iq.values().first(); - emit callDone(); - } -} |
