#include <dlmgr.h>

This class represents a single MultiThreadDownloaderBase-based download task. The functionality implemented inside this class is the following:
| BazisLib::Network::DownloadManager::DownloadTask::DownloadTask | ( | ManagedPointer< MultiThreaded::MultiThreadDownloaderBase > | pBase, | |
| DownloadManager * | pManager, | |||
| unsigned | RateAveragingTime, | |||
| const MultiThreaded::AdvancedDownloadParams & | CachedDownloadParams | |||
| ) | [inline] |

| BazisLib::Network::DownloadManager::DownloadTask::~DownloadTask | ( | ) | [inline] |
| void BazisLib::Network::DownloadManager::DownloadTask::AllowFileAppending | ( | bool | FileAppendingAllowed | ) | [inline] |
| ActionStatus BazisLib::Network::DownloadManager::DownloadTask::ApplyDownloadParams | ( | const std::string & | URL, | |
| const FilePath & | path, | |||
| MultiThreaded::AdvancedDownloadParams * | pParams | |||
| ) | [inline] |

| ActionStatus BazisLib::Network::DownloadManager::DownloadTask::ApplyThreadCount | ( | unsigned | NewThreadCount | ) | [inline] |

| BazisLib::Network::DownloadManager::DownloadTask::DECLARE_REFERENCE | ( | MultiThreaded::MultiThreadDownloaderBase | , | |
| m_pDownloader | ||||
| ) |
| void BazisLib::Network::DownloadManager::DownloadTask::FlagCompleted | ( | ) | [inline, protected] |
| unsigned BazisLib::Network::DownloadManager::DownloadTask::GetActiveThreads | ( | ) | [inline] |
| unsigned BazisLib::Network::DownloadManager::DownloadTask::GetAdditionalStatusCode | ( | ) | [inline] |
| bool BazisLib::Network::DownloadManager::DownloadTask::GetAndResetCompletePendingEvent | ( | ) | [inline] |
| unsigned BazisLib::Network::DownloadManager::DownloadTask::GetAverageRate | ( | ) | [inline] |

| MultiThreaded::AdvancedDownloadParams* BazisLib::Network::DownloadManager::DownloadTask::GetCachedDownloadParams | ( | ) | [inline] |
| ULONGLONG BazisLib::Network::DownloadManager::DownloadTask::GetCompletedSize | ( | ) | [inline] |
| MultiThreaded::MultiThreadDownloaderBase::DownloadState BazisLib::Network::DownloadManager::DownloadTask::GetCurrentState | ( | ) | [inline] |
| MultiThreaded::FragmentFileFormat BazisLib::Network::DownloadManager::DownloadTask::GetFormat | ( | ) | [inline] |
| unsigned BazisLib::Network::DownloadManager::DownloadTask::GetMaxThreadCount | ( | ) | [inline] |
| TimeSpan BazisLib::Network::DownloadManager::DownloadTask::GetRemainingTime | ( | ) | [inline] |

| unsigned BazisLib::Network::DownloadManager::DownloadTask::GetSlidingRate | ( | ) | [inline] |

| ActionStatus BazisLib::Network::DownloadManager::DownloadTask::GetStatus | ( | ) | [inline] |
| ThreadStats BazisLib::Network::DownloadManager::DownloadTask::GetThreadStats | ( | unsigned | ThreadID | ) | [inline] |
| ULONGLONG BazisLib::Network::DownloadManager::DownloadTask::GetTotalFileSize | ( | ) | [inline] |
| void* BazisLib::Network::DownloadManager::DownloadTask::GetUserContext | ( | ) | [inline] |
| bool BazisLib::Network::DownloadManager::DownloadTask::IsCompleted | ( | ) | [inline] |
| bool BazisLib::Network::DownloadManager::DownloadTask::IsDownloading | ( | ) | [inline] |
| bool BazisLib::Network::DownloadManager::DownloadTask::IsPending | ( | ) | [inline] |
| ActionStatus BazisLib::Network::DownloadManager::DownloadTask::NonConditionalResume | ( | ) | [inline] |

| static bool BazisLib::Network::DownloadManager::DownloadTask::ProgressProc | ( | NetworkOperationPhase | phase, | |
| ULONGLONG | done, | |||
| ULONGLONG | total, | |||
| unsigned | lastPortionSize, | |||
| unsigned | ThreadID, | |||
| void * | pContext | |||
| ) | [static, protected] |
| ActionStatus BazisLib::Network::DownloadManager::DownloadTask::Resume | ( | ) |
| void BazisLib::Network::DownloadManager::DownloadTask::SetAveragingTime | ( | unsigned | Time | ) | [inline] |

| void BazisLib::Network::DownloadManager::DownloadTask::SetTimeout | ( | unsigned | Timeout | ) | [inline] |
| void BazisLib::Network::DownloadManager::DownloadTask::SetUserContext | ( | void * | pContext | ) | [inline] |
| void BazisLib::Network::DownloadManager::DownloadTask::Stop | ( | ) |
friend class DownloadManager [friend] |
The flag_pending-start-complete scheme works in the following way: 1) When the active download limit is reached, the Resume() method just sets the m_bStartPending flag instead of actually starting the download. 2) When a download is completed, the download count is checked once again, and in case a new download can be started, the first 'pending' download is actually started by calling NonConditionalResume(). 3) A Stop() call on a 'pending' download just clears the 'pending' flag 4) When the maximum download count is altered, the CheckAndStartPendingDownloads() method is invoked.
| MultiThreaded::AdvancedDownloadParams BazisLib::Network::DownloadManager::DownloadTask::m_CachedDownloadParams |