diff options
Diffstat (limited to 'Src/Plugins/Library/ml_downloads/Downloaded.cpp')
-rw-r--r-- | Src/Plugins/Library/ml_downloads/Downloaded.cpp | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/Src/Plugins/Library/ml_downloads/Downloaded.cpp b/Src/Plugins/Library/ml_downloads/Downloaded.cpp new file mode 100644 index 00000000..dc5a0e19 --- /dev/null +++ b/Src/Plugins/Library/ml_downloads/Downloaded.cpp @@ -0,0 +1,141 @@ +#include "main.h" +#include "Downloaded.h" + +DownloadList downloadedFiles; +using namespace Nullsoft::Utility; +Nullsoft::Utility::LockGuard downloadedLock; + +DownloadedFile::DownloadedFile() +{ + Init(); +} + +DownloadedFile::DownloadedFile( const wchar_t *_url, const wchar_t *_path, const wchar_t *_source, const wchar_t *_title, int downloadStatus, __time64_t downloadDate ) +{ + Init(); + + this->downloadStatus = downloadStatus; + this->downloadDate = downloadDate; + + SetSource( _source ); + SetTitle( _title ); + SetPath( _path ); + SetURL( _url ); +} + +DownloadedFile::DownloadedFile( const DownloadedFile © ) +{ + Init(); + + operator =( copy ); +} + +DownloadedFile::~DownloadedFile() +{ + Reset(); +} + + +void DownloadedFile::Init() +{ + url = 0; + path = 0; + source = 0; + title = 0; + bytesDownloaded = 0; + totalSize = 0; + downloadDate = 0; +} + +void DownloadedFile::Reset() +{ + if ( url ) + { + free( url ); + url = 0; + } + + if ( path ) + { + free( path ); + path = 0; + } + + if ( source ) + { + free( source ); + source = 0; + } + + if ( title ) + { + free( title ); + title = 0; + } +} + +void DownloadedFile::SetPath( const wchar_t *_path ) +{ + if ( path ) + free( path ); + + path = _wcsdup( _path ); +} + +void DownloadedFile::SetURL( const wchar_t *_url ) +{ + if ( url ) + free( url ); + + url = _wcsdup( _url ); +} + +void DownloadedFile::SetTitle( const wchar_t *_title ) +{ + if ( title ) + free( title ); + + title = _wcsdup( _title ); +} + +void DownloadedFile::SetSource( const wchar_t *_source ) +{ + if ( source ) + free( source ); + + source = _wcsdup( _source ); +} + +const DownloadedFile &DownloadedFile::operator =( const DownloadedFile © ) +{ + Reset(); + Init(); + + SetSource( copy.source ); + SetTitle( copy.title ); + + bytesDownloaded = copy.bytesDownloaded; + totalSize = copy.totalSize; + downloadStatus = copy.downloadStatus; + downloadDate = copy.downloadDate; + + SetPath( copy.path ); + SetURL( copy.url ); + + return *this; +} + +wchar_t *GetDownloadStatus( int downloadStatus ) +{ + switch ( downloadStatus ) + { + case DownloadedFile::DOWNLOAD_SUCCESS: + return WASABI_API_LNGSTRINGW( IDS_DOWNLOAD_SUCCESS ); + case DownloadedFile::DOWNLOAD_FAILURE: + return WASABI_API_LNGSTRINGW( IDS_DOWNLOAD_FAILURE ); + case DownloadedFile::DOWNLOAD_CANCELED: + return WASABI_API_LNGSTRINGW( IDS_DOWNLOAD_CANCELED ); + default: + return WASABI_API_LNGSTRINGW( IDS_DOWNLOAD_FAILURE ); + } +}
\ No newline at end of file |