#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 |