summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/isode/stroke/filetransfer/DefaultFileTransferTransporterFactory.java')
-rw-r--r--src/com/isode/stroke/filetransfer/DefaultFileTransferTransporterFactory.java101
1 files changed, 101 insertions, 0 deletions
diff --git a/src/com/isode/stroke/filetransfer/DefaultFileTransferTransporterFactory.java b/src/com/isode/stroke/filetransfer/DefaultFileTransferTransporterFactory.java
new file mode 100644
index 0000000..3f15cc3
--- /dev/null
+++ b/src/com/isode/stroke/filetransfer/DefaultFileTransferTransporterFactory.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (c) 2013-2015 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+/*
+ * Copyright (c) 2015 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+package com.isode.stroke.filetransfer;
+
+import com.isode.stroke.elements.JingleS5BTransportPayload;
+import com.isode.stroke.signals.Signal2;
+import com.isode.stroke.signals.Signal3;
+import com.isode.stroke.elements.ErrorPayload;
+import com.isode.stroke.jid.JID;
+import java.util.Vector;
+import java.util.logging.Logger;
+import com.isode.stroke.crypto.CryptoProvider;
+import com.isode.stroke.queries.IQRouter;
+import com.isode.stroke.queries.GenericRequest;
+import com.isode.stroke.signals.Slot1;
+import com.isode.stroke.signals.Slot2;
+import com.isode.stroke.base.IDGenerator;
+import com.isode.stroke.base.SafeByteArray;
+import com.isode.stroke.network.ConnectionFactory;
+import com.isode.stroke.network.TimerFactory;
+import com.isode.stroke.elements.S5BProxyRequest;
+import com.isode.stroke.elements.IQ;
+import com.isode.stroke.stringcodecs.Hexify;
+
+public class DefaultFileTransferTransporterFactory implements FileTransferTransporterFactory {
+
+ private SOCKS5BytestreamRegistry s5bRegistry;
+ private SOCKS5BytestreamServerManager s5bServerManager;
+ private SOCKS5BytestreamProxiesManager s5bProxiesManager;
+ private IDGenerator idGenerator;
+ private ConnectionFactory connectionFactory;
+ private TimerFactory timerFactory;
+ private CryptoProvider cryptoProvider;
+ private IQRouter iqRouter;
+
+ DefaultFileTransferTransporterFactory(
+ SOCKS5BytestreamRegistry s5bRegistry,
+ SOCKS5BytestreamServerManager s5bServerManager,
+ SOCKS5BytestreamProxiesManager s5bProxy,
+ IDGenerator idGenerator,
+ ConnectionFactory connectionFactory,
+ TimerFactory timerFactory,
+ CryptoProvider cryptoProvider,
+ IQRouter iqRouter) {
+ this.s5bRegistry = s5bRegistry;
+ this.s5bProxiesManager = s5bProxy;
+ this.s5bServerManager = s5bServerManager;
+ this.idGenerator = idGenerator;
+ this.connectionFactory = connectionFactory;
+ this.timerFactory = timerFactory;
+ this.cryptoProvider = cryptoProvider;
+ this.iqRouter = iqRouter;
+ }
+
+ public FileTransferTransporter createInitiatorTransporter(
+ final JID initiator, final JID responder, final FileTransferOptions options) {
+ DefaultFileTransferTransporter transporter = new DefaultFileTransferTransporter(
+ initiator,
+ responder,
+ DefaultFileTransferTransporter.Role.Initiator,
+ s5bRegistry,
+ s5bServerManager,
+ s5bProxiesManager,
+ idGenerator,
+ connectionFactory,
+ timerFactory,
+ cryptoProvider,
+ iqRouter,
+ options);
+ transporter.initialize();
+ return transporter;
+ }
+
+ public FileTransferTransporter createResponderTransporter(
+ final JID initiator, final JID responder, final String s5bSessionID, final FileTransferOptions options) {
+ DefaultFileTransferTransporter transporter = new DefaultFileTransferTransporter(
+ initiator,
+ responder,
+ DefaultFileTransferTransporter.Role.Responder,
+ s5bRegistry,
+ s5bServerManager,
+ s5bProxiesManager,
+ idGenerator,
+ connectionFactory,
+ timerFactory,
+ cryptoProvider,
+ iqRouter,
+ options);
+ transporter.initialize(s5bSessionID);
+ return transporter;
+ }
+} \ No newline at end of file