diff options
Diffstat (limited to 'Swiften/FileTransfer/SOCKS5BytestreamClientSession.h')
-rw-r--r-- | Swiften/FileTransfer/SOCKS5BytestreamClientSession.h | 110 |
1 files changed, 58 insertions, 52 deletions
diff --git a/Swiften/FileTransfer/SOCKS5BytestreamClientSession.h b/Swiften/FileTransfer/SOCKS5BytestreamClientSession.h index 287cf3b..70a7c9c 100644 --- a/Swiften/FileTransfer/SOCKS5BytestreamClientSession.h +++ b/Swiften/FileTransfer/SOCKS5BytestreamClientSession.h @@ -4,16 +4,23 @@ * See Documentation/Licenses/BSD-simplified.txt for more information. */ +/* + * Copyright (c) 2015-2017 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 <Swiften/Base/API.h> #include <Swiften/Base/ByteArray.h> #include <Swiften/FileTransfer/FileTransferError.h> -#include <Swiften/FileTransfer/WriteBytestream.h> #include <Swiften/FileTransfer/ReadBytestream.h> +#include <Swiften/FileTransfer/WriteBytestream.h> #include <Swiften/JID/JID.h> #include <Swiften/Network/Connection.h> #include <Swiften/Network/HostAddressPort.h> @@ -21,7 +28,6 @@ namespace Swift { -class SOCKS5BytestreamRegistry; class Connection; class TimerFactory; @@ -31,75 +37,75 @@ class TimerFactory; */ class SWIFTEN_API SOCKS5BytestreamClientSession { public: - enum State { - Initial, - Hello, - Authenticating, - Ready, - Writing, - Reading, - Finished - }; + enum State { + Initial, + Hello, + Authenticating, + Ready, + Writing, + Reading, + Finished + }; public: - typedef boost::shared_ptr<SOCKS5BytestreamClientSession> ref; + typedef std::shared_ptr<SOCKS5BytestreamClientSession> ref; public: - SOCKS5BytestreamClientSession( - boost::shared_ptr<Connection> connection, - const HostAddressPort&, - const std::string&, - TimerFactory*); - ~SOCKS5BytestreamClientSession(); + SOCKS5BytestreamClientSession( + std::shared_ptr<Connection> connection, + const HostAddressPort&, + const std::string&, + TimerFactory*); + ~SOCKS5BytestreamClientSession(); - void start(); - void stop(); + void start(); + void stop(); - void startReceiving(boost::shared_ptr<WriteBytestream>); - void startSending(boost::shared_ptr<ReadBytestream>); + void startReceiving(std::shared_ptr<WriteBytestream>); + void startSending(std::shared_ptr<ReadBytestream>); - HostAddressPort getAddressPort() const; + HostAddressPort getAddressPort() const; - boost::signal<void (bool /*error*/)> onSessionReady; + boost::signals2::signal<void (bool /*error*/)> onSessionReady; - boost::signal<void (boost::optional<FileTransferError>)> onFinished; - boost::signal<void (size_t)> onBytesSent; - boost::signal<void (size_t)> onBytesReceived; + boost::signals2::signal<void (boost::optional<FileTransferError>)> onFinished; + boost::signals2::signal<void (size_t)> onBytesSent; + // boost::signals2::signal<void (size_t)> onBytesReceived; private: - void process(); - void hello(); - void authenticate(); + void process(); + void hello(); + void authenticate(); - void handleConnectFinished(bool error); - void handleDataRead(boost::shared_ptr<SafeByteArray>); - void handleDisconnected(const boost::optional<Connection::Error>&); - void handleWeFailedTimeout(); + void handleConnectFinished(bool error); + void handleDataRead(std::shared_ptr<SafeByteArray>); + void handleDisconnected(const boost::optional<Connection::Error>&); + void handleWeFailedTimeout(); - void finish(bool error); - void sendData(); - void closeConnection(); + void finish(bool error); + void sendData(); + void closeConnection(); private: - boost::shared_ptr<Connection> connection; - HostAddressPort addressPort; - std::string destination; // hexify(SHA1(sessionID + requester + target)) + std::shared_ptr<Connection> connection; + HostAddressPort addressPort; + std::string destination; // hexify(SHA1(sessionID + requester + target)) - State state; + State state; - ByteArray unprocessedData; - ByteArray authenticateAddress; + ByteArray unprocessedData; + ByteArray authenticateAddress; - int chunkSize; - boost::shared_ptr<WriteBytestream> writeBytestream; - boost::shared_ptr<ReadBytestream> readBytestream; + int chunkSize; + std::shared_ptr<WriteBytestream> writeBytestream; + std::shared_ptr<ReadBytestream> readBytestream; - Timer::ref weFailedTimeout; + Timer::ref weFailedTimeout; - boost::bsignals::connection connectFinishedConnection; - boost::bsignals::connection dataWrittenConnection; - boost::bsignals::connection dataReadConnection; - boost::bsignals::connection disconnectedConnection; + boost::signals2::scoped_connection connectFinishedConnection; + boost::signals2::scoped_connection dataWrittenConnection; + boost::signals2::scoped_connection dataReadConnection; + boost::signals2::scoped_connection disconnectedConnection; }; } |