/* * Copyright (c) 2011 Tobias Markmann * Licensed under the simplified BSD license. * See Documentation/Licenses/BSD-simplified.txt for more information. */ #pragma once #include #include #include namespace Swift { class JingleSessionManager; class IQRouter; class EntityCapsProvider; class RemoteJingleTransportCandidateSelectorFactory; class LocalJingleTransportCandidateGeneratorFactory; class OutgoingFileTransfer; class JID; class IDGenerator; class ReadBytestream; class StreamInitiationFileInfo; class SOCKS5BytestreamRegistry; class SOCKS5BytestreamProxy; class SOCKS5BytestreamServer; class PresenceOracle; class CombinedOutgoingFileTransferManager { public: CombinedOutgoingFileTransferManager(JingleSessionManager* jingleSessionManager, IQRouter* router, EntityCapsProvider* capsProvider, RemoteJingleTransportCandidateSelectorFactory* remoteFactory, LocalJingleTransportCandidateGeneratorFactory* localFactory, SOCKS5BytestreamRegistry* bytestreamRegistry, SOCKS5BytestreamProxy* bytestreamProxy, PresenceOracle* presOracle, SOCKS5BytestreamServer *server); ~CombinedOutgoingFileTransferManager(); boost::shared_ptr createOutgoingFileTransfer(const JID& from, const JID& to, boost::shared_ptr, const StreamInitiationFileInfo&); private: boost::optional highestPriorityJIDSupportingJingle(const JID& bareJID); boost::optional highestPriorityJIDSupportingSI(const JID& bareJID); JingleSessionManager* jsManager; IQRouter* iqRouter; EntityCapsProvider* capsProvider; RemoteJingleTransportCandidateSelectorFactory* remoteFactory; LocalJingleTransportCandidateGeneratorFactory* localFactory; IDGenerator *idGenerator; SOCKS5BytestreamRegistry* bytestreamRegistry; SOCKS5BytestreamProxy* bytestreamProxy; PresenceOracle* presenceOracle; SOCKS5BytestreamServer *bytestreamServer; }; }