public void EnqueueDownloader(ISegmentDownloadTask segmentDownloader) { lock (m_Locker) { m_Downloaders.Enqueue(segmentDownloader); Monitor.Pulse(m_Locker); } }
public void EnqueueDownloader(ISegmentDownloadTask segmentDownloader) { lock (m_Locker) { m_Downloaders.Enqueue(segmentDownloader); Monitor.Pulse(m_Locker); } }
public void Download(byte[] data, int bufferSize, int endPosition) { BeforeDownload(); DownloadStream inputStream = new DownloadStream(data); MemoryStream outputStream = new MemoryStream(); DownloadSegmentPositions downloadSegmentPositions = new DownloadSegmentPositions(0, endPosition); ISegmentDownloadTask task = CreateSegmentDownloadTask(bufferSize, CreateSegmentDownloader(inputStream, downloadSegmentPositions), CreateSegmentWriter(outputStream)); task.Download(); AfterDownload(); Assert.AreEqual(endPosition + 1, inputStream.TotalDownloads); Assert.AreEqual(inputStream.ToArray().Take(endPosition).ToArray(), outputStream.ToArray().Take(endPosition).ToArray()); }