/* * 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 #include "transport/PresenceOracle.h" #include "Swiften/SwiftenCompat.h" #include #include #define HAVE_SWIFTEN_3 (SWIFTEN_VERSION >= 0x030000) 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, Transport::PresenceOracle* presOracle, SOCKS5BytestreamServer *server); ~CombinedOutgoingFileTransferManager(); SWIFTEN_SHRPTR_NAMESPACE::shared_ptr createOutgoingFileTransfer(const JID& from, const JID& to, SWIFTEN_SHRPTR_NAMESPACE::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; Transport::PresenceOracle* presenceOracle; SOCKS5BytestreamServer *bytestreamServer; }; }