diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-08-29 15:20:29 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-08-29 17:32:41 (GMT) |
commit | 46b13c4d25270c6933d20c6aa790619e30e4cfe8 (patch) | |
tree | 36fb78a6eb49180ddbffe2d50e5034f89474e72e /Swiften/Client/Client.cpp | |
parent | f2301a18167bc1221cc0b70b71692ce9d1021119 (diff) | |
download | swift-contrib-46b13c4d25270c6933d20c6aa790619e30e4cfe8.zip swift-contrib-46b13c4d25270c6933d20c6aa790619e30e4cfe8.tar.bz2 |
Added stanza acking support to client.
Diffstat (limited to 'Swiften/Client/Client.cpp')
-rw-r--r-- | Swiften/Client/Client.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/Swiften/Client/Client.cpp b/Swiften/Client/Client.cpp index 763c83e..2406b0f 100644 --- a/Swiften/Client/Client.cpp +++ b/Swiften/Client/Client.cpp @@ -81,9 +81,10 @@ void Client::handleConnectorFinished(boost::shared_ptr<Connection> connection, C session_ = ClientSession::create(jid_, sessionStream_); session_->onInitialized.connect(boost::bind(boost::ref(onConnected))); + session_->onStanzaAcked.connect(boost::bind(&Client::handleStanzaAcked, this, _1)); session_->onFinished.connect(boost::bind(&Client::handleSessionFinished, this, _1)); session_->onNeedCredentials.connect(boost::bind(&Client::handleNeedCredentials, this)); - session_->onElementReceived.connect(boost::bind(&Client::handleElement, this, _1)); + session_->onStanzaReceived.connect(boost::bind(&Client::handleStanza, this, _1)); session_->start(); } } @@ -115,7 +116,7 @@ void Client::send(boost::shared_ptr<Stanza> stanza) { std::cerr << "Warning: Client: Trying to send a stanza while disconnected." << std::endl; return; } - session_->sendElement(stanza); + session_->sendStanza(stanza); } void Client::sendIQ(boost::shared_ptr<IQ> iq) { @@ -134,20 +135,20 @@ String Client::getNewIQID() { return idGenerator_.generateID(); } -void Client::handleElement(boost::shared_ptr<Element> element) { - boost::shared_ptr<Message> message = boost::dynamic_pointer_cast<Message>(element); +void Client::handleStanza(boost::shared_ptr<Stanza> stanza) { + boost::shared_ptr<Message> message = boost::dynamic_pointer_cast<Message>(stanza); if (message) { onMessageReceived(message); return; } - boost::shared_ptr<Presence> presence = boost::dynamic_pointer_cast<Presence>(element); + boost::shared_ptr<Presence> presence = boost::dynamic_pointer_cast<Presence>(stanza); if (presence) { onPresenceReceived(presence); return; } - boost::shared_ptr<IQ> iq = boost::dynamic_pointer_cast<IQ>(element); + boost::shared_ptr<IQ> iq = boost::dynamic_pointer_cast<IQ>(stanza); if (iq) { onIQReceived(iq); return; @@ -222,6 +223,13 @@ void Client::handleNeedCredentials() { session_->sendCredentials(password_); } +bool Client::getStreamManagementEnabled() const { + if (session_) { + return session_->getStreamManagementEnabled(); + } + return false; +} + void Client::handleDataRead(const String& data) { onDataRead(data); } @@ -230,4 +238,8 @@ void Client::handleDataWritten(const String& data) { onDataWritten(data); } +void Client::handleStanzaAcked(boost::shared_ptr<Stanza> stanza) { + onStanzaAcked(stanza); +} + } |