diff options
Diffstat (limited to 'Swiften/FileTransfer/IBBSendSession.h')
-rw-r--r-- | Swiften/FileTransfer/IBBSendSession.h | 97 |
1 files changed, 50 insertions, 47 deletions
diff --git a/Swiften/FileTransfer/IBBSendSession.h b/Swiften/FileTransfer/IBBSendSession.h index f6ba7b3..e45532d 100644 --- a/Swiften/FileTransfer/IBBSendSession.h +++ b/Swiften/FileTransfer/IBBSendSession.h @@ -1,68 +1,71 @@ /* - * Copyright (c) 2010-2013 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. + * Copyright (c) 2010-2016 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. */ #pragma once -#include <boost/shared_ptr.hpp> +#include <memory> + #include <boost/optional.hpp> +#include <boost/signals2.hpp> #include <Swiften/Base/API.h> -#include <Swiften/Base/boost_bsignals.h> -#include <Swiften/FileTransfer/ReadBytestream.h> -#include <Swiften/JID/JID.h> -#include <Swiften/Elements/IBB.h> #include <Swiften/Elements/ErrorPayload.h> +#include <Swiften/Elements/IBB.h> #include <Swiften/FileTransfer/FileTransferError.h> +#include <Swiften/FileTransfer/ReadBytestream.h> +#include <Swiften/JID/JID.h> namespace Swift { - class IQRouter; + class IQRouter; + class IBBRequest; - class SWIFTEN_API IBBSendSession { - public: - IBBSendSession( - const std::string& id, - const JID& from, - const JID& to, - boost::shared_ptr<ReadBytestream> bytestream, - IQRouter* router); - ~IBBSendSession(); + class SWIFTEN_API IBBSendSession { + public: + IBBSendSession( + const std::string& id, + const JID& from, + const JID& to, + std::shared_ptr<ReadBytestream> bytestream, + IQRouter* router); + ~IBBSendSession(); - void start(); - void stop(); + void start(); + void stop(); - const JID& getSender() const { - return from; - } + const JID& getSender() const { + return from; + } - const JID& getReceiver() const { - return to; - } + const JID& getReceiver() const { + return to; + } - void setBlockSize(unsigned int blockSize) { - this->blockSize = blockSize; - } + void setBlockSize(unsigned int blockSize) { + this->blockSize = blockSize; + } - boost::signal<void (boost::optional<FileTransferError>)> onFinished; - boost::signal<void (size_t)> onBytesSent; + boost::signals2::signal<void (boost::optional<FileTransferError>)> onFinished; + boost::signals2::signal<void (size_t)> onBytesSent; - private: - void handleIBBResponse(IBB::ref, ErrorPayload::ref); - void finish(boost::optional<FileTransferError>); - void sendMoreData(); - void handleDataAvailable(); + private: + void handleIBBResponse(IBB::ref, ErrorPayload::ref); + void finish(boost::optional<FileTransferError>); + void sendMoreData(); + void handleDataAvailable(); - private: - std::string id; - JID from; - JID to; - boost::shared_ptr<ReadBytestream> bytestream; - IQRouter* router; - unsigned int blockSize; - int sequenceNumber; - bool active; - bool waitingForData; - }; + private: + std::string id; + JID from; + JID to; + std::shared_ptr<ReadBytestream> bytestream; + IQRouter* router; + unsigned int blockSize; + int sequenceNumber; + bool active; + bool waitingForData; + std::shared_ptr<IBBRequest> currentRequest; + }; } |