summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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;
};
-
}