示例#1
0
 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());
        }