From fd81b0d61e00f085bfb813959e24aa523ac143f9 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 4 Jun 2010 11:55:51 +0000 Subject: move roster ownership to QXmppClient, so that a QXmppStream can be created without a roster manager --- source/QXmppClient.cpp | 3 ++- source/QXmppClient.h | 1 + source/QXmppRoster.cpp | 6 ++++-- source/QXmppStream.cpp | 20 ++++++++------------ source/QXmppStream.h | 2 -- 5 files changed, 15 insertions(+), 17 deletions(-) (limited to 'source') diff --git a/source/QXmppClient.cpp b/source/QXmppClient.cpp index 13c89d21..eac98eda 100644 --- a/source/QXmppClient.cpp +++ b/source/QXmppClient.cpp @@ -43,6 +43,7 @@ QXmppClient::QXmppClient(QObject *parent) { m_logger = QXmppLogger::getLogger(); m_stream = new QXmppStream(this); + m_roster = new QXmppRoster(m_stream); bool check = connect(m_stream, SIGNAL(messageReceived(const QXmppMessage&)), this, SIGNAL(messageReceived(const QXmppMessage&))); @@ -243,7 +244,7 @@ void QXmppClient::disconnect() QXmppRoster& QXmppClient::getRoster() { - return m_stream->getRoster(); + return *m_roster; } /// Utility function to send message to all the resources associated with the diff --git a/source/QXmppClient.h b/source/QXmppClient.h index 6f52e4ca..6732d048 100644 --- a/source/QXmppClient.h +++ b/source/QXmppClient.h @@ -209,6 +209,7 @@ private: ///< required for connecting to the XMPP server. QXmppPresence m_clientPresence; ///< Stores the current presence of the connected client QXmppReconnectionManager* m_reconnectionManager; ///< Pointer to the reconnection manager + QXmppRoster *m_roster; ///< Pointer to the roster manager QHash m_interfaces; }; diff --git a/source/QXmppRoster.cpp b/source/QXmppRoster.cpp index a7c98efd..51d877e2 100644 --- a/source/QXmppRoster.cpp +++ b/source/QXmppRoster.cpp @@ -29,8 +29,10 @@ #include "QXmppPresence.h" #include "QXmppStream.h" -QXmppRoster::QXmppRoster(QXmppStream* stream) : m_stream(stream), - m_isRosterReceived(false) +QXmppRoster::QXmppRoster(QXmppStream* stream) + : QObject(stream), + m_stream(stream), + m_isRosterReceived(false) { bool check = QObject::connect(m_stream, SIGNAL(xmppConnected()), this, SLOT(connected())); diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp index 1f99fdfb..7d6a0190 100644 --- a/source/QXmppStream.cpp +++ b/source/QXmppStream.cpp @@ -26,26 +26,27 @@ #include "QXmppPacket.h" #include "QXmppUtils.h" #include "QXmppClient.h" -#include "QXmppRoster.h" #include "QXmppPresence.h" #include "QXmppIq.h" #include "QXmppBind.h" #include "QXmppSession.h" -#include "QXmppRosterIq.h" #include "QXmppMessage.h" #include "QXmppConstants.h" #include "QXmppVCard.h" #include "QXmppNonSASLAuth.h" #include "QXmppInformationRequestResult.h" -#include "QXmppIbbIq.h" -#include "QXmppRpcIq.h" +#include "QXmppTransferManager.h" + +// IQ types #include "QXmppArchiveIq.h" #include "QXmppByteStreamIq.h" #include "QXmppDiscoveryIq.h" -#include "QXmppPingIq.h" +#include "QXmppIbbIq.h" #include "QXmppLogger.h" +#include "QXmppPingIq.h" +#include "QXmppRpcIq.h" +#include "QXmppRosterIq.h" #include "QXmppStreamInitiationIq.h" -#include "QXmppTransferManager.h" #include "QXmppVersionIq.h" #include @@ -60,7 +61,7 @@ static const QByteArray streamRootElementStart = " #include #include "QXmppConfiguration.h" -#include "QXmppRoster.h" #include "QXmppStanza.h" #include "QXmppVCardManager.h" #include "QXmppArchiveManager.h" @@ -130,7 +129,6 @@ private slots: private: QXmppClient* m_client; // reverse pointer - QXmppRoster m_roster; QString m_sessionId; QString m_bindId; QByteArray m_dataBuffer; -- cgit v1.2.3