From 6982f22e2fbfbecdf7bb2a76f53de90a45613654 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 4 Jun 2010 14:01:15 +0000 Subject: use signal/slot to handle RPC --- source/QXmppClient.cpp | 5 +++++ source/QXmppClient.h | 2 +- source/QXmppStream.cpp | 2 +- source/QXmppStream.h | 5 +++-- 4 files changed, 10 insertions(+), 4 deletions(-) (limited to 'source') 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&); -- cgit v1.2.3