aboutsummaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-06-04 14:01:15 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-06-04 14:01:15 +0000
commit6982f22e2fbfbecdf7bb2a76f53de90a45613654 (patch)
tree54a6662fb6f2080c8f8c7e24e037ad38b0bddc94 /source
parent452d70b95168e5f36a6cdb972278d656141feb3f (diff)
downloadqxmpp-6982f22e2fbfbecdf7bb2a76f53de90a45613654.tar.gz
use signal/slot to handle RPC
Diffstat (limited to 'source')
-rw-r--r--source/QXmppClient.cpp5
-rw-r--r--source/QXmppClient.h2
-rw-r--r--source/QXmppStream.cpp2
-rw-r--r--source/QXmppStream.h5
4 files changed, 10 insertions, 4 deletions
diff --git a/source/QXmppClient.cpp b/source/QXmppClient.cpp
index ba907fb5..bdc549f4 100644
--- a/source/QXmppClient.cpp
+++ b/source/QXmppClient.cpp
@@ -82,6 +82,11 @@ QXmppClient::QXmppClient(QObject *parent)
check = setReconnectionManager(new QXmppReconnectionManager(this));
Q_ASSERT(check);
+ // rpc
+ check = connect(m_stream, SIGNAL(rpcCallInvoke(QXmppRpcInvokeIq)),
+ this, SIGNAL(invokeInterfaceMethod(QXmppRpcInvokeIq)));
+ Q_ASSERT(check);
+
// create managers
m_roster = new QXmppRoster(m_stream);
m_archiveManager = new QXmppArchiveManager(m_stream);
diff --git a/source/QXmppClient.h b/source/QXmppClient.h
index fe3cf997..3ae88a63 100644
--- a/source/QXmppClient.h
+++ b/source/QXmppClient.h
@@ -169,7 +169,6 @@ public:
QAbstractSocket::SocketError getSocketError();
void addInvokableInterface( QXmppInvokable *interface );
- void invokeInterfaceMethod( const QXmppRpcInvokeIq &iq );
QXmppRemoteMethodResult callRemoteMethod( const QString &jid,
const QString &interface,
const QVariant &arg1 = QVariant(),
@@ -200,6 +199,7 @@ public slots:
void setClientPresence(QXmppPresence::Status::Type statusType);
private slots:
+ void invokeInterfaceMethod( const QXmppRpcInvokeIq &iq );
void xmppConnected();
private:
diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp
index 36e9e87f..e5eb0eaa 100644
--- a/source/QXmppStream.cpp
+++ b/source/QXmppStream.cpp
@@ -463,7 +463,7 @@ void QXmppStream::parser(const QByteArray& data)
{
QXmppRpcInvokeIq rpcIqPacket;
rpcIqPacket.parse(nodeRecv);
- m_client->invokeInterfaceMethod(rpcIqPacket);
+ emit rpcCallInvoke(rpcIqPacket);
}
else if ( QXmppRpcResponseIq::isRpcResponseIq( nodeRecv ) )
{
diff --git a/source/QXmppStream.h b/source/QXmppStream.h
index a5aaab3d..8f665471 100644
--- a/source/QXmppStream.h
+++ b/source/QXmppStream.h
@@ -99,8 +99,9 @@ signals:
void rosterIqReceived(const QXmppRosterIq&);
void vCardIqReceived(const QXmppVCard&);
- void rpcCallResponse(const QXmppRpcResponseIq& result );
- void rpcCallError(const QXmppRpcErrorIq& err );
+ void rpcCallInvoke(const QXmppRpcInvokeIq &invoke);
+ void rpcCallResponse(const QXmppRpcResponseIq& result);
+ void rpcCallError(const QXmppRpcErrorIq &err);
void archiveChatIqReceived(const QXmppArchiveChatIq&);
void archiveListIqReceived(const QXmppArchiveListIq&);