summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2012-12-25 14:39:48 (GMT)
committerRemko Tronçon <git@el-tramo.be>2013-05-11 10:22:56 (GMT)
commit927d62cc54c8a5087dba6b61afa9ad30dc528a23 (patch)
treee67dc911bd30c0519d31a542d8e085bbb209879d /Swiften/FileTransfer/FileTransferManagerImpl.h
parent17b188343e7208b875af7af30d94f0bf948f6b93 (diff)
downloadswift-927d62cc54c8a5087dba6b61afa9ad30dc528a23.zip
swift-927d62cc54c8a5087dba6b61afa9ad30dc528a23.tar.bz2
File Transfer refactoring.
Allocate S5B server lazily. Forward forts lazily. Various state machine fixes. Temporarily disabling S5B proxy support. Change-Id: I3145e85a99b15a7e457306bbfbe9c0eb570191e4
Diffstat (limited to 'Swiften/FileTransfer/FileTransferManagerImpl.h')
-rw-r--r--Swiften/FileTransfer/FileTransferManagerImpl.h65
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;
};
-
}