diff options
Diffstat (limited to 'Swiften/FileTransfer/FileTransferManagerImpl.h')
-rw-r--r-- | Swiften/FileTransfer/FileTransferManagerImpl.h | 153 |
1 files changed, 76 insertions, 77 deletions
diff --git a/Swiften/FileTransfer/FileTransferManagerImpl.h b/Swiften/FileTransfer/FileTransferManagerImpl.h index addbbd7..d3d55f0 100644 --- a/Swiften/FileTransfer/FileTransferManagerImpl.h +++ b/Swiften/FileTransfer/FileTransferManagerImpl.h @@ -5,99 +5,98 @@ */ /* - * Copyright (c) 2013 Remko Tronçon - * Licensed under the GNU General Public License. + * Copyright (c) 2013-2017 Isode Limited. + * All rights reserved. * See the COPYING file for more information. */ #pragma once -#include <vector> #include <string> +#include <vector> -#include <boost/filesystem/path.hpp> #include <boost/date_time/posix_time/posix_time.hpp> +#include <boost/filesystem/path.hpp> #include <boost/optional.hpp> +#include <boost/signals2.hpp> #include <Swiften/Base/API.h> -#include <Swiften/Base/Override.h> +#include <Swiften/Base/IDGenerator.h> +#include <Swiften/Elements/S5BProxyRequest.h> #include <Swiften/FileTransfer/FileTransferManager.h> #include <Swiften/FileTransfer/FileTransferOptions.h> -#include <Swiften/Base/boost_bsignals.h> -#include <Swiften/Base/IDGenerator.h> -#include <Swiften/JID/JID.h> -#include <Swiften/FileTransfer/OutgoingFileTransfer.h> #include <Swiften/FileTransfer/IncomingFileTransfer.h> -#include <Swiften/Elements/S5BProxyRequest.h> +#include <Swiften/FileTransfer/OutgoingFileTransfer.h> namespace Swift { - class ConnectionFactory; - class ConnectionServerFactory; - class SOCKS5BytestreamServerManager; - class EntityCapsProvider; - class IQRouter; - class IncomingFileTransferManager; - class JingleSessionManager; - class OutgoingFileTransferManager; - class NATTraverser; - class PresenceOracle; - class ReadBytestream; - class FileTransferTransporterFactory; - class SOCKS5BytestreamRegistry; - class SOCKS5BytestreamProxiesManager; - class TimerFactory; - class CryptoProvider; - class NetworkEnvironment; + class ConnectionFactory; + class ConnectionServerFactory; + class CryptoProvider; + class DomainNameResolver; + class EntityCapsProvider; + class FileTransferTransporterFactory; + class IQRouter; + class IncomingFileTransferManager; + class JID; + class JingleSessionManager; + class NATTraverser; + class NetworkEnvironment; + class OutgoingFileTransferManager; + class PresenceOracle; + class ReadBytestream; + class SOCKS5BytestreamProxiesManager; + class SOCKS5BytestreamRegistry; + class SOCKS5BytestreamServerManager; + class TimerFactory; + + class SWIFTEN_API FileTransferManagerImpl : public FileTransferManager { + public: + FileTransferManagerImpl( + const JID& ownFullJID, + JingleSessionManager* jingleSessionManager, + IQRouter* router, + EntityCapsProvider* capsProvider, + PresenceOracle* presOracle, + ConnectionFactory* connectionFactory, + ConnectionServerFactory* connectionServerFactory, + TimerFactory* timerFactory, + DomainNameResolver* domainNameResolver, + NetworkEnvironment* networkEnvironment, + NATTraverser* natTraverser, + CryptoProvider* crypto); + virtual ~FileTransferManagerImpl() override; + + OutgoingFileTransfer::ref createOutgoingFileTransfer( + const JID& to, + const boost::filesystem::path& filepath, + const std::string& description, + std::shared_ptr<ReadBytestream> bytestream, + const FileTransferOptions&) override; + OutgoingFileTransfer::ref createOutgoingFileTransfer( + const JID& to, + const std::string& filename, + const std::string& description, + const boost::uintmax_t sizeInBytes, + const boost::posix_time::ptime& lastModified, + std::shared_ptr<ReadBytestream> bytestream, + const FileTransferOptions&) override; + + void start(); + void stop(); - class SWIFTEN_API FileTransferManagerImpl : public FileTransferManager { - public: - FileTransferManagerImpl( - const JID& ownFullJID, - JingleSessionManager* jingleSessionManager, - IQRouter* router, - EntityCapsProvider* capsProvider, - PresenceOracle* presOracle, - ConnectionFactory* connectionFactory, - ConnectionServerFactory* connectionServerFactory, - TimerFactory* timerFactory, - NetworkEnvironment* networkEnvironment, - NATTraverser* natTraverser, - CryptoProvider* crypto); - ~FileTransferManagerImpl(); - - OutgoingFileTransfer::ref createOutgoingFileTransfer( - const JID& to, - const boost::filesystem::path& filepath, - const std::string& description, - boost::shared_ptr<ReadBytestream> bytestream, - const FileTransferOptions&) SWIFTEN_OVERRIDE; - OutgoingFileTransfer::ref createOutgoingFileTransfer( - const JID& to, - const std::string& filename, - const std::string& description, - const boost::uintmax_t sizeInBytes, - const boost::posix_time::ptime& lastModified, - boost::shared_ptr<ReadBytestream> bytestream, - const FileTransferOptions&) SWIFTEN_OVERRIDE; + private: + boost::optional<JID> highestPriorityJIDSupportingFileTransfer(const JID& bareJID); - void start(); - void stop(); - - private: - boost::optional<JID> highestPriorityJIDSupportingFileTransfer(const JID& bareJID); - - private: - JID ownJID; - - OutgoingFileTransferManager* outgoingFTManager; - IncomingFileTransferManager* incomingFTManager; - FileTransferTransporterFactory* transporterFactory; - IQRouter* iqRouter; - EntityCapsProvider* capsProvider; - PresenceOracle* presenceOracle; - IDGenerator idGenerator; - SOCKS5BytestreamRegistry* bytestreamRegistry; - SOCKS5BytestreamProxiesManager* bytestreamProxy; - SOCKS5BytestreamServerManager* s5bServerManager; - }; + private: + OutgoingFileTransferManager* outgoingFTManager; + IncomingFileTransferManager* incomingFTManager; + FileTransferTransporterFactory* transporterFactory; + IQRouter* iqRouter; + EntityCapsProvider* capsProvider; + PresenceOracle* presenceOracle; + IDGenerator idGenerator; + SOCKS5BytestreamRegistry* bytestreamRegistry; + SOCKS5BytestreamProxiesManager* bytestreamProxy; + SOCKS5BytestreamServerManager* s5bServerManager; + }; } |