diff options
Diffstat (limited to 'src/com/isode/stroke/filetransfer/DefaultFileTransferTransporterFactory.java')
-rw-r--r-- | src/com/isode/stroke/filetransfer/DefaultFileTransferTransporterFactory.java | 101 |
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 |