diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-06-04 08:30:57 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-06-04 08:30:57 +0000 |
| commit | 9664a8c8f049ceaa96a3ce1ac8df2e3a99aa55b8 (patch) | |
| tree | d3135dc620062655e599db6253e532b5d1f18878 | |
| parent | 1cc368236b7f9f4840d4dbbf136c54c71b952e44 (diff) | |
| download | qxmpp-9664a8c8f049ceaa96a3ce1ac8df2e3a99aa55b8.tar.gz | |
make QXmppClient::sendPacket return a boolean to know whether a packet was actually sent
| -rw-r--r-- | source/QXmppClient.cpp | 10 | ||||
| -rw-r--r-- | source/QXmppClient.h | 2 | ||||
| -rw-r--r-- | source/QXmppStream.cpp | 8 | ||||
| -rw-r--r-- | source/QXmppStream.h | 4 |
4 files changed, 13 insertions, 11 deletions
diff --git a/source/QXmppClient.cpp b/source/QXmppClient.cpp index 9f361c14..fe6a80dc 100644 --- a/source/QXmppClient.cpp +++ b/source/QXmppClient.cpp @@ -193,6 +193,8 @@ void QXmppClient::connectToServer(const QString& host, /// QXmppMessage, QXmppPresence, QXmppIq, QXmppBind, QXmppRosterIq, QXmppSession /// and QXmppVCard. /// +/// \return Returns true if the packet was sent, false otherwise. +/// /// Following code snippet illustrates how to send a message using this function: /// \code /// QXmppMessage message(from, to, message); @@ -202,12 +204,12 @@ void QXmppClient::connectToServer(const QString& host, /// \param packet A valid XMPP stanza. It can be an iq, a message or a presence stanza. /// -void QXmppClient::sendPacket(const QXmppPacket& packet) +bool QXmppClient::sendPacket(const QXmppPacket& packet) { if(m_stream) - { - m_stream->sendPacket(packet); - } + return m_stream->sendPacket(packet); + else + return false; } /// Disconnects the client and the current presence of client changes to diff --git a/source/QXmppClient.h b/source/QXmppClient.h index 2a2f831e..40ceba62 100644 --- a/source/QXmppClient.h +++ b/source/QXmppClient.h @@ -190,7 +190,7 @@ public: virtual bool handleStreamElement(const QDomElement &element); public slots: - void sendPacket(const QXmppPacket&); + bool sendPacket(const QXmppPacket&); void sendMessage(const QString& bareJid, const QString& message); void setClientPresence(const QXmppPresence&); diff --git a/source/QXmppStream.cpp b/source/QXmppStream.cpp index 9c7f618d..bab566cf 100644 --- a/source/QXmppStream.cpp +++ b/source/QXmppStream.cpp @@ -784,10 +784,10 @@ void QXmppStream::sendStartStream() sendToServer(data); } -void QXmppStream::sendToServer(const QByteArray& packet) +bool QXmppStream::sendToServer(const QByteArray& packet) { m_client->logger()->log(QXmppLogger::SentMessage, QString::fromUtf8(packet)); - m_socket.write( packet ); + return m_socket.write( packet ) == packet.size(); } bool QXmppStream::hasStartStreamElement(const QByteArray& data) @@ -1032,7 +1032,7 @@ QXmppRoster& QXmppStream::getRoster() return m_roster; } -void QXmppStream::sendPacket(const QXmppPacket& packet) +bool QXmppStream::sendPacket(const QXmppPacket& packet) { // prepare packet QByteArray data; @@ -1040,7 +1040,7 @@ void QXmppStream::sendPacket(const QXmppPacket& packet) packet.toXml(&xmlStream); // send packet - sendToServer(data); + return sendToServer(data); } void QXmppStream::processPresence(const QXmppPresence& presence) diff --git a/source/QXmppStream.h b/source/QXmppStream.h index 454c5bc7..089c190f 100644 --- a/source/QXmppStream.h +++ b/source/QXmppStream.h @@ -71,7 +71,7 @@ public: QXmppRoster& getRoster(); QXmppTransferManager& getTransferManager(); QXmppVCardManager& getVCardManager(); - void sendPacket(const QXmppPacket&); + bool sendPacket(const QXmppPacket&); QAbstractSocket::SocketError getSocketError(); QXmppStanza::Error::Condition getXmppStreamError(); @@ -167,7 +167,7 @@ private: void sendSessionIQ(); void sendInitialPresence(); void sendRosterRequest(); - void sendToServer(const QByteArray&); + bool sendToServer(const QByteArray&); bool hasStartStreamElement(const QByteArray&); bool hasEndStreamElement(const QByteArray&); |
