package com.limegroup.gnutella.downloader; import java.util.concurrent.ScheduledExecutorService; import org.limewire.inspection.InspectionPoint; import org.limewire.net.SocketsManager; import org.limewire.net.TLSManager; import com.google.inject.Inject; import com.google.inject.Provider; import com.google.inject.Singleton; import com.google.inject.name.Named; @Singleton class DownloadWorkerFactoryImpl implements DownloadWorkerFactory { private final HTTPDownloaderFactory httpDownloaderFactory; private final ScheduledExecutorService backgroundExecutor; private final ScheduledExecutorService nioExecutor; private final Provider<PushDownloadManager> pushDownloadManager; private final SocketsManager socketsManager; @InspectionPoint("download connection stats") private final DownloadStatsTracker statsTracker; private final TLSManager TLSManager; @Inject public DownloadWorkerFactoryImpl( HTTPDownloaderFactory httpDownloaderFactory, @Named("backgroundExecutor")ScheduledExecutorService backgroundExecutor, @Named("nioExecutor")ScheduledExecutorService nioExecutor, Provider<PushDownloadManager> pushDownloadManager, SocketsManager socketsManager, DownloadStatsTracker statsTracker, TLSManager TLSManager) { this.httpDownloaderFactory = httpDownloaderFactory; this.backgroundExecutor = backgroundExecutor; this.nioExecutor = nioExecutor; this.pushDownloadManager = pushDownloadManager; this.socketsManager = socketsManager; this.statsTracker = statsTracker; this.TLSManager = TLSManager; } /* (non-Javadoc) * @see com.limegroup.gnutella.downloader.DownloadWorkerFactory#create(com.limegroup.gnutella.downloader.ManagedDownloader, com.limegroup.gnutella.RemoteFileDesc, com.limegroup.gnutella.downloader.VerifyingFile) */ public DownloadWorker create(DownloadWorkerSupport manager, RemoteFileDescContext rfdContext, VerifyingFile vf) { return new DownloadWorker(manager, rfdContext, vf, httpDownloaderFactory, backgroundExecutor, nioExecutor, pushDownloadManager, socketsManager, statsTracker, TLSManager); } }