QXmppRpcManager.h
/*
* Copyright (C) 2008-2019 The QXmpp developers
*
* Author:
* Jeremy Lainé
*
* Source:
* https://github.com/qxmpp-project/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.
*
*/
#ifndef QXMPPRPCMANAGER_H
#define QXMPPRPCMANAGER_H
#include <QMap>
#include <QVariant>
#include "QXmppClientExtension.h"
#include "QXmppInvokable.h"
#include "QXmppRemoteMethod.h"
class QXmppRpcErrorIq;
class QXmppRpcInvokeIq;
class QXmppRpcResponseIq;
class QXMPP_EXPORT QXmppRpcManager : public QXmppClientExtension
{
Q_OBJECT
public:
QXmppRpcManager();
void addInvokableInterface( QXmppInvokable *interface );
QXmppRemoteMethodResult callRemoteMethod( const QString &jid,
const QString &interface,
const QVariant &arg1 = QVariant(),
const QVariant &arg2 = QVariant(),
const QVariant &arg3 = QVariant(),
const QVariant &arg4 = QVariant(),
const QVariant &arg5 = QVariant(),
const QVariant &arg6 = QVariant(),
const QVariant &arg7 = QVariant(),
const QVariant &arg8 = QVariant(),
const QVariant &arg9 = QVariant(),
const QVariant &arg10 = QVariant() );
QStringList discoveryFeatures() const;
virtual QList<QXmppDiscoveryIq::Identity> discoveryIdentities() const;
bool handleStanza(const QDomElement &element);
signals:
void rpcCallResponse(const QXmppRpcResponseIq& result);
void rpcCallError(const QXmppRpcErrorIq &err);
private:
void invokeInterfaceMethod(const QXmppRpcInvokeIq &iq);
QMap<QString,QXmppInvokable*> m_interfaces;
};
#endif
QXmppRpcManager
The QXmppRpcManager class make it possible to invoke remote methods and to expose local interfaces fo...
Definition: QXmppRpcManager.h:54
QXmppInvokable
Definition: QXmppInvokable.h:40
QXmppRpcResponseIq
The QXmppRpcResponseIq class represents an IQ used to carry an RPC response as specified by XEP-0009:...
Definition: QXmppRpcIq.h:43
QXmppClientExtension
The QXmppClientExtension class is the base class for QXmppClient extensions.
Definition: QXmppClientExtension.h:47
QXmppRpcInvokeIq
The QXmppRpcInvokeIq class represents an IQ used to carry an RPC invocation as specified by XEP-0009:...
Definition: QXmppRpcIq.h:78
QXmppClientExtension::discoveryFeatures
virtual QStringList discoveryFeatures() const
Definition: QXmppClientExtension.cpp:54
QXmppClientExtension::discoveryIdentities
virtual QList< QXmppDiscoveryIq::Identity > discoveryIdentities() const
Definition: QXmppClientExtension.cpp:62
QXmppClientExtension::handleStanza
virtual bool handleStanza(const QDomElement &stanza)=0
You need to implement this method to process incoming XMPP stanzas.