aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-06-04 08:30:57 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-06-04 08:30:57 +0000
commit9664a8c8f049ceaa96a3ce1ac8df2e3a99aa55b8 (patch)
treed3135dc620062655e599db6253e532b5d1f18878
parent1cc368236b7f9f4840d4dbbf136c54c71b952e44 (diff)
downloadqxmpp-9664a8c8f049ceaa96a3ce1ac8df2e3a99aa55b8.tar.gz
make QXmppClient::sendPacket return a boolean to know whether a packet was actually sent
-rw-r--r--source/QXmppClient.cpp10
-rw-r--r--source/QXmppClient.h2
-rw-r--r--source/QXmppStream.cpp8
-rw-r--r--source/QXmppStream.h4
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&);