diff options
Diffstat (limited to 'Swiften/FileTransfer/FileTransferManagerImpl.h')
-rw-r--r-- | Swiften/FileTransfer/FileTransferManagerImpl.h | 65 |
1 files changed, 41 insertions, 24 deletions
diff --git a/Swiften/FileTransfer/FileTransferManagerImpl.h b/Swiften/FileTransfer/FileTransferManagerImpl.h index d5ef144..addbbd7 100644 --- a/Swiften/FileTransfer/FileTransferManagerImpl.h +++ b/Swiften/FileTransfer/FileTransferManagerImpl.h @@ -19,45 +19,69 @@ #include <boost/date_time/posix_time/posix_time.hpp> #include <boost/optional.hpp> +#include <Swiften/Base/API.h> +#include <Swiften/Base/Override.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> namespace Swift { - class Client; class ConnectionFactory; class ConnectionServerFactory; - class ConnectivityManager; + class SOCKS5BytestreamServerManager; class EntityCapsProvider; class IQRouter; class IncomingFileTransferManager; class JingleSessionManager; - class LocalJingleTransportCandidateGeneratorFactory; class OutgoingFileTransferManager; class NATTraverser; class PresenceOracle; class ReadBytestream; - class RemoteJingleTransportCandidateSelectorFactory; + class FileTransferTransporterFactory; class SOCKS5BytestreamRegistry; - class SOCKS5BytestreamServer; - class SOCKS5BytestreamProxy; + class SOCKS5BytestreamProxiesManager; class TimerFactory; - class SOCKS5BytestreamProxyFinder; class CryptoProvider; + class NetworkEnvironment; - class FileTransferManagerImpl : public FileTransferManager { + 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, NATTraverser* natTraverser, CryptoProvider* crypto); + 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(); - void startListeningOnPort(int port); - void addS5BProxy(S5BProxyRequest::ref proxy); + 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; - OutgoingFileTransfer::ref createOutgoingFileTransfer(const JID& to, const boost::filesystem::path& filepath, const std::string& description, boost::shared_ptr<ReadBytestream> bytestream); - 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); + void start(); + void stop(); private: boost::optional<JID> highestPriorityJIDSupportingFileTransfer(const JID& bareJID); @@ -67,20 +91,13 @@ namespace Swift { OutgoingFileTransferManager* outgoingFTManager; IncomingFileTransferManager* incomingFTManager; - RemoteJingleTransportCandidateSelectorFactory* remoteCandidateSelectorFactory; - LocalJingleTransportCandidateGeneratorFactory* localCandidateGeneratorFactory; - JingleSessionManager* jingleSM; + FileTransferTransporterFactory* transporterFactory; IQRouter* iqRouter; EntityCapsProvider* capsProvider; PresenceOracle* presenceOracle; - - ConnectionServerFactory* connectionServerFactory; - CryptoProvider* crypto; + IDGenerator idGenerator; SOCKS5BytestreamRegistry* bytestreamRegistry; - SOCKS5BytestreamServer* bytestreamServer; - SOCKS5BytestreamProxy* bytestreamProxy; - ConnectivityManager* connectivityManager; - SOCKS5BytestreamProxyFinder* s5bProxyFinder; + SOCKS5BytestreamProxiesManager* bytestreamProxy; + SOCKS5BytestreamServerManager* s5bServerManager; }; - } |