public PeersCluster(AppInfo appInfo, IPeerRegistry peerRegistry, HttpApiClient client, IPackageRegistry packageRegistry, PackageDownloadManager packageDownloadManager) { this.appInfo = appInfo ?? throw new ArgumentNullException(nameof(appInfo)); this.peerRegistry = peerRegistry ?? throw new ArgumentNullException(nameof(peerRegistry)); this.client = client ?? throw new ArgumentNullException(nameof(client)); this.packageRegistry = packageRegistry ?? throw new ArgumentNullException(nameof(packageRegistry)); this.packageDownloadManager = packageDownloadManager ?? throw new ArgumentNullException(nameof(packageDownloadManager)); statusUpdateTimer = new Timer(StatusUpdateTimerCallback, null, TimeSpan.Zero, TimeSpan.Zero); uploadSlots = appInfo.NetworkSettings.MaximumUploadsSlots; logger = appInfo.LoggerFactory.CreateLogger <PeersCluster>(); peerRegistry.PeersChanged += PeerRegistry_PeersChanged; packageRegistry.NewLocalPackageCreated += PackageRegistry_NewLocalPackageCreated; packageRegistry.LocalPackageDeleted += PackageRegistry_LocalPackageDeleted; packageDownloadManager.DownloadStatusChange += PackageDownloadManager_DownloadStatusChange; }
public PackageDownloadSlot(PackageDownloadManager parent, LocalPackageInfo package, PeerInfo peer) { this.parent = parent ?? throw new ArgumentNullException(nameof(parent)); this.package = package ?? throw new ArgumentNullException(nameof(package)); this.peer = peer ?? throw new ArgumentNullException(nameof(peer)); }