diff options
Diffstat (limited to 'src/com/isode/stroke/filetransfer/OutgoingFileTransferManager.java')
-rw-r--r-- | src/com/isode/stroke/filetransfer/OutgoingFileTransferManager.java | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/src/com/isode/stroke/filetransfer/OutgoingFileTransferManager.java b/src/com/isode/stroke/filetransfer/OutgoingFileTransferManager.java new file mode 100644 index 0000000..ce848ee --- /dev/null +++ b/src/com/isode/stroke/filetransfer/OutgoingFileTransferManager.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2011 Tobias Markmann + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ +/* + * 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.signals.Signal1; +import com.isode.stroke.jingle.IncomingJingleSessionHandler; +import com.isode.stroke.jingle.JingleSessionManager; +import com.isode.stroke.jingle.JingleSession; +import com.isode.stroke.elements.JinglePayload; +import com.isode.stroke.elements.JingleContentPayload; +import com.isode.stroke.elements.JingleFileTransferDescription; +import com.isode.stroke.elements.JingleFileTransferFileInfo; +import com.isode.stroke.jingle.JingleSessionImpl; +import com.isode.stroke.elements.JingleS5BTransportPayload; +import com.isode.stroke.jingle.Jingle; +import com.isode.stroke.network.TimerFactory; +import com.isode.stroke.crypto.CryptoProvider; +import com.isode.stroke.queries.IQRouter; +import com.isode.stroke.jid.JID; +import com.isode.stroke.base.IDGenerator; + +public class OutgoingFileTransferManager { + + private JingleSessionManager jingleSessionManager; + private IQRouter iqRouter; + private FileTransferTransporterFactory transporterFactory; + private TimerFactory timerFactory; + private IDGenerator idGenerator; + private CryptoProvider crypto; + + public OutgoingFileTransferManager( + JingleSessionManager jingleSessionManager, + IQRouter router, + FileTransferTransporterFactory transporterFactory, + TimerFactory timerFactory, + CryptoProvider crypto) { + this.jingleSessionManager = jingleSessionManager; + this.iqRouter = router; + this.transporterFactory = transporterFactory; + this.timerFactory = timerFactory; + this.idGenerator = idGenerator; + this.crypto = crypto; + idGenerator = new IDGenerator(); + } + + public OutgoingFileTransfer createOutgoingFileTransfer( + final JID from, + final JID recipient, + ReadBytestream readBytestream, + final JingleFileTransferFileInfo fileInfo, + final FileTransferOptions config) { + JingleSessionImpl jingleSession = new JingleSessionImpl(from, recipient, idGenerator.generateID(), iqRouter); + jingleSessionManager.registerOutgoingSession(from, jingleSession); + return new OutgoingJingleFileTransfer( + recipient, + jingleSession, + readBytestream, + transporterFactory, + timerFactory, + idGenerator, + fileInfo, + config, + crypto); + } +}
\ No newline at end of file |