diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-08-29 12:51:45 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-08-29 13:30:18 (GMT) |
commit | 0091fcc571758791442f82ece2a72444b6fe79cf (patch) | |
tree | 807f20a4047604a87f56d247d8ad7180489fe82b /Swiften/StreamManagement/StanzaAckRequester.h | |
parent | 901f620b6ccabde19ef460368028fa0464aa56c5 (diff) | |
download | swift-contrib-0091fcc571758791442f82ece2a72444b6fe79cf.zip swift-contrib-0091fcc571758791442f82ece2a72444b6fe79cf.tar.bz2 |
Added Stanza Ack Requester & Responder.
Diffstat (limited to 'Swiften/StreamManagement/StanzaAckRequester.h')
-rw-r--r-- | Swiften/StreamManagement/StanzaAckRequester.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Swiften/StreamManagement/StanzaAckRequester.h b/Swiften/StreamManagement/StanzaAckRequester.h new file mode 100644 index 0000000..89f068e --- /dev/null +++ b/Swiften/StreamManagement/StanzaAckRequester.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <boost/shared_ptr.hpp> +#include <deque> + +#include "Swiften/Elements/Stanza.h" +#include "Swiften/Base/boost_bsignals.h" + +namespace Swift { + class StanzaAckRequester { + public: + StanzaAckRequester(); + + void handleStanzaSent(boost::shared_ptr<Stanza> stanza); + void handleAckReceived(unsigned int handledStanzasCount); + + public: + boost::signal<void ()> onRequestAck; + boost::signal<void (boost::shared_ptr<Stanza>)> onStanzaAcked; + + private: + friend class StanzaAckRequesterTest; + unsigned int lastHandledStanzasCount; + std::deque<boost::shared_ptr<Stanza> > unackedStanzas; + }; + +} |