QXmpp Version:0.3.91
QXmppRemoteMethod.h
00001 /*
00002  * Copyright (C) 2008-2011 The QXmpp developers
00003  *
00004  * Authors:
00005  *  Ian Reinhart Geiser
00006  *
00007  * Source:
00008  *  http://code.google.com/p/qxmpp
00009  *
00010  * This file is a part of QXmpp library.
00011  *
00012  * This library is free software; you can redistribute it and/or
00013  * modify it under the terms of the GNU Lesser General Public
00014  * License as published by the Free Software Foundation; either
00015  * version 2.1 of the License, or (at your option) any later version.
00016  *
00017  * This library is distributed in the hope that it will be useful,
00018  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00020  * Lesser General Public License for more details.
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
 All Classes Functions Enumerations Enumerator Properties