File: System\Deployment\Application\FileDownloader.cs
Project: System.Deployment.dll (System.Deployment)
#region Assembly System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Deployment.dll
#endregion
 
using System.Collections;
 
namespace System.Deployment.Application
{
    internal abstract class FileDownloader
    {
        protected long _accumulatedBytesTotal;
        protected byte[] _buffer;
        protected ComponentVerifier _componentVerifier;
        protected ArrayList _downloadResults;
        protected DownloadEventArgs _eventArgs;
        protected long _expectedBytesTotal;
        protected bool _fCancelPending;
        protected Queue _fileQueue;
        protected DownloadOptions _options;
 
        protected FileDownloader();
 
        public ComponentVerifier ComponentVerifier { get; }
        public DownloadResult[] DownloadResults { get; }
        public DownloadOptions Options { set; }
 
        public event DownloadCompletedEventHandler DownloadCompleted;
        public event DownloadModifiedEventHandler DownloadModified;
 
        public static FileDownloader Create();
        public void AddFile(Uri sourceUri, string targetFilePath);
        public void AddFile(Uri sourceUri, string targetFilePath, int maxFileSize);
        public void AddFile(Uri sourceUri, string targetFilePath, object cookie, HashCollection hashCollection);
        public void AddFile(Uri sourceUri, string targetFilePath, object cookie, HashCollection hashCollection, int maxFileSize);
        public void AddNotification(IDownloadNotification notification);
        public virtual void Cancel();
        public void Download(SubscriptionState subState);
        public void RemoveNotification(IDownloadNotification notification);
        public void SetExpectedBytesTotal(long total);
        protected abstract void DownloadAllFiles();
        protected void OnCompleted();
        protected void OnModified();
        protected void OnModifiedWithThrottle(ref int lastTick);
        protected void SetBytesTotal();
 
        protected class DownloadQueueItem
        {
            public const int FileOfAnySize = -1;
            public object _cookie;
            public HashCollection _hashCollection;
            public int _maxFileSize;
            public Uri _sourceUri;
            public string _targetPath;
 
            public DownloadQueueItem();
 
            public override string ToString();
        }
 
        public delegate void DownloadCompletedEventHandler(object sender, DownloadEventArgs e);
        public delegate void DownloadModifiedEventHandler(object sender, DownloadEventArgs e);
    }
}