public static void Reset(this IDownloadTask task) { task.CancellationHandle.Reset(); task.ProgressPercentage = 0; task.CurrentState = DownloadState.Created; task.ErrorCause = null; }
protected void TryStartNextTask() { if (m_DownloadingTask != null) { WWWDownloader.S.Clear(); return; } if (m_WaitDownloadList.Count == 0) { WWWDownloader.S.Clear(); return; } IDownloadTask next = PopNextTask(); if (next == null) { WWWDownloader.S.Clear(); return; } //next.ResState = eResState.kDownloading; m_DownloadingTask = next; //HttpDownloaderMgr.S.AddDownloadTask(next.url, next.localResPath, OnDownloadProgress, OnDownloadError, OnDownloadFinish, null); WWWDownloader.S.AddDownloadTask(next.url, next.localResPath, next.fileSize, OnDownloadProgress, OnDownloadError, OnDownloadFinish, null, next.OnValidCheck, next.logError); next.DeleteOldResFile(); }
public bool RemoveDownloadTask(IDownloadTask res) { if (res == null) { return(true); } //当前无法取消正在下载的资源 /* * if (res.ResState == eResState.kDownloading) * { * return false; * } */ if (!mAllDownloadTaskMap.ContainsKey(res.LocalResPath)) { return(true); } mAllDownloadTaskMap.Remove(res.LocalResPath); mWaitDownloadList.Remove(res); return(true); }
public Guid Add(IDownloadTask downloadTask) { Guid guid = Guid.NewGuid(); m_DownloadTasks.TryAdd(guid, downloadTask); return guid; }
protected void TryStartNextTask() { if (mDownloadingTask != null) { return; } if (mWaitDownloadList.Count == 0) { return; } IDownloadTask next = PopNextTask(); if (next == null) { return; } //next.ResState = eResState.kDownloading; mDownloadingTask = next; HttpDownloaderMgr.Instance.AddDownloadTask(next.Url, next.LocalResPath, null, OnDownloadError, OnDownloadFinish, null); next.DeleteOldResFile(); }
public Guid Add(IDownloadTask downloadTask) { Guid guid = Guid.NewGuid(); m_DownloadTasks.TryAdd(guid, downloadTask); return(guid); }
private void RemoveTask(IDownloadTask res) { if (res == null) { return; } mAllDownloadTaskMap.Remove(res.LocalResPath); }
private IDownloadTask mDownloadingTask;//由于当前HttpDownloaderMgr只支持一个 public bool HasDownloadTask(IDownloadTask res) { if (mAllDownloadTaskMap.ContainsKey(res.LocalResPath)) { return(true); } return(false); }
private Guid AddNewDownloadTask(IDownloadTask downloadTask, bool startImmediately) { Guid guid = m_DownloadTaskList.Add(downloadTask); if (startImmediately) { m_DownloadTaskQueue.EnqueueDownloadTask(downloadTask); } return guid; }
private Guid AddNewDownloadTask(IDownloadTask downloadTask, bool startImmediately) { Guid guid = m_DownloadTaskList.Add(downloadTask); if (startImmediately) { m_DownloadTaskQueue.EnqueueDownloadTask(downloadTask); } return(guid); }
public DownloadTaskViewModel(IDownloadTask downloadTask, Action <string> viewResultsAction) { if (downloadTask == null) { throw new System.ArgumentNullException(nameof(downloadTask)); } if (viewResultsAction == null) { throw new System.ArgumentNullException(nameof(viewResultsAction)); } this.downloadTask = downloadTask; this.viewResultsAction = viewResultsAction; }
public void EnqueueDownloadTask(IDownloadTask downloadTask) { lock (m_Locker) { m_DownloadTasks.Enqueue(downloadTask); if (downloadTask != null) { downloadTask.ChangeState(DownloadTaskState.Queued); } Monitor.Pulse(m_Locker); } }
public void AddDownloadTask(IDownloadTask res) { if (res == null) { return; } //res.ResState = eResState.kWaitDownload; mAllDownloadTaskMap.Add(res.LocalResPath, res); mWaitDownloadList.Add(res); TryStartNextTask(); }
private void OnDownloadError(string errorMsg) { if (mDownloadingTask == null) { TryStartNextTask(); return; } Log.I("ResDownloader: Downloading Error:" + errorMsg); RemoveTask(mDownloadingTask); mDownloadingTask.OnDownLoadResult(false); mDownloadingTask = null; TryStartNextTask(); }
private void DrawDownloadTask(IDownloadTask downloadTask) { if (!downloadTask.Info.HasValue) { return; } EditorGUI.indentLevel++; var downloadTaskInfo = downloadTask.Info.Value; EditorGUILayout.BeginVertical(); { var sb = StringBuilderCache.Acquire(); sb.AppendLine("URL: " + downloadTaskInfo.UrlStr); sb.AppendLine("Save Path: " + downloadTaskInfo.SavePath); if (downloadTaskInfo.Size > 0L) { sb.AppendFormat("Size: {0:N0}\n", downloadTaskInfo.Size); } if (downloadTaskInfo.Crc32 != null) { sb.AppendFormat("CRC 32: {0}\n", downloadTaskInfo.Crc32.Value); } if (downloadTaskInfo.Size <= 0L) { sb.AppendFormat("Download size: {0:N0}\n", downloadTask.DownloadedSize); } else { float progress = (float)downloadTask.DownloadedSize / downloadTaskInfo.Size; sb.AppendFormat("Download size: {0:N0} ({1:P2})\n", downloadTask.DownloadedSize, progress); } TimeSpan timeUsed = TimeSpan.FromSeconds(downloadTask.TimeUsed); sb.AppendFormat("Time used: {0}.{1:D2}:{2:D2}:{3:D2}\n", timeUsed.Days, timeUsed.Hours, timeUsed.Minutes, timeUsed.Seconds); EditorGUILayout.LabelField(StringBuilderCache.GetStringAndRelease(sb), EditorStyles.wordWrappedLabel); } EditorGUILayout.EndVertical(); EditorGUI.indentLevel--; }
private void DrawOngoingDownloadTask(int taskId, IDownloadTask downloadTask) { if (downloadTask.Info == null) { return; } var downloadTaskInfo = downloadTask.Info.Value; if (!DrawOneDownloadTaskHead(taskId, ref downloadTaskInfo)) { return; } EditorGUILayout.BeginHorizontal(); { GUILayout.Space(10f); DrawDownloadTask(downloadTask); } EditorGUILayout.EndHorizontal(); }
public void RemooveTask() { //remoove selected task if (selectedTask != null) { IDownloadTask temp = null; for (int i = 0; i < downloadTaskList.Count; i++) { if (downloadTaskList[i].CurrentDownloadItem.ID.Equals(selectedTask.ID)) { downloadTaskList[i].Stop(); temp = downloadTaskList[i]; break; } } downloadTaskList.Remove(temp); GetDownloadTaskState.Invoke(DownloadList); } }
private void OnDownloadFinish(string fileName, int download, int totalFileLenght) { if (mDownloadingTask == null) { Log.E("ResDownloader: Error, Current Res Begin Download Is Null..."); TryStartNextTask(); return; } if (fileName != mDownloadingTask.LocalResPath) { Log.E("ResDownloader: Error, Not Current Res Begin Download..."); mDownloadingTask = null; TryStartNextTask(); return; } Log.I("ResDownloader: Downloading Success:" + fileName); RemoveTask(mDownloadingTask); mDownloadingTask.OnDownLoadResult(true); mDownloadingTask = null; TryStartNextTask(); }
public DownloadTaskFinishedEventMessage(IDownloadTask downloadTask, Stream downloadStream, RemoteFileInfo remoteFileInfo) { DownloadTask = downloadTask; RemoteFileInfo = remoteFileInfo; DownloadStream = downloadStream; }
public TaskPoolEventArgs(IDownloadTask chaneObject, ChangeType changeType) { this.ChangedObject = chaneObject; this.ChangeType = changeType; }
/// <summary> /// Release a download task to the pool. /// </summary> /// <param name="downloadTask">The download task.</param> public void Release(IDownloadTask downloadTask) { m_DownloadTaskRawPool.Release((DownloadTask)downloadTask); }