Exemplo n.º 1
0
    /// <summary>
    /// Using a url and basic file info will create a download package and add it to the downloder
    /// </summary>
    /// <param name="url"></param>
    /// <param name="fileLocalPath"></param>
    /// <returns></returns>
    internal Task <DownloadPackage> AddFile(string url, string fileLocalPath = null, bool requestRemoteSize = true)
    {
        DownloadPackage package;

        package = new DownloadPackage(this, url, fileLocalPath, requestRemoteSize);

        if (State == AgentState.Busy)
        {
            package.State = PackageState.OnQueue;
        }

        PackageList.Add(package);

        TotalDownloadFilesCount++;

        //ParentDownloder.CallDownloadFileAdded(package);
        System.Console.WriteLine("Devhus.Downloader file has been added: {0}", package.MyFile.FullName);

        return(Task.FromResult(package));
    }
Exemplo n.º 2
0
        /// <summary>
        /// Setup chunk object
        /// </summary>
        /// <param name="chunkIndex"></param>
        /// <param name="rangeStart"></param>
        /// <param name="rangeEnd"></param>
        /// <param name="filePath"></param>
        internal DownloadChunk(DownloadPackage ownerPackage, int chunkIndex, long rangeStart, long rangeEnd)
        {
            ParentPackage = ownerPackage;

            ChunkIndex = chunkIndex;

            FilePath = string.Format(ParentPackage.MyFile.LocalTempPath + ".{0:000}", ChunkIndex);

            Start = rangeStart;

            End = rangeEnd;

            LocalBytes = ReadChunkFileBytes();

            ParentPackage.ReportChunkProgress(ChunkIndex, LocalBytes);
            //ParentPackage.Progress.LocalBytes += LocalBytes;

            DownloadUri = ParentPackage.MyFile.DownloadUrl;

            System.Console.WriteLine("Devhus.Downloader {0} package #{1} chunk set download range from {2} to {3}",
                                     ParentPackage.PackageID, ChunkIndex, Start, End);
        }