From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Plugins/Library/ml_wire/Downloaded.cpp | 121 +++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 Src/Plugins/Library/ml_wire/Downloaded.cpp (limited to 'Src/Plugins/Library/ml_wire/Downloaded.cpp') diff --git a/Src/Plugins/Library/ml_wire/Downloaded.cpp b/Src/Plugins/Library/ml_wire/Downloaded.cpp new file mode 100644 index 00000000..e088a376 --- /dev/null +++ b/Src/Plugins/Library/ml_wire/Downloaded.cpp @@ -0,0 +1,121 @@ +#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 *_channel, const wchar_t *_item, __time64_t publishDate) +{ + Init(); + + this->publishDate = publishDate; + + SetChannel( _channel ); + SetItem( _item ); + SetPath( _path ); + SetURL( _url ); +} + +DownloadedFile::DownloadedFile( const DownloadedFile © ) +{ + Init(); + + operator =( copy ); +} + +DownloadedFile::~DownloadedFile() +{ + Reset(); +} + + +void DownloadedFile::Init() +{ + url = 0; + path = 0; + channel = 0; + item = 0; + bytesDownloaded = 0; + totalSize = 0; + publishDate = 0; +} + +void DownloadedFile::Reset() +{ + if ( url ) + { + free( url ); + url = 0; + } + + if ( path ) + { + free( path ); + path = 0; + } + + if ( channel ) + { + free( channel ); + channel = 0; + } + + if ( item ) + { + free( item ); + item = 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::SetItem( const wchar_t *_item ) +{ + free( item ); + item = _wcsdup( _item ); +} + +void DownloadedFile::SetChannel( const wchar_t *_channel ) +{ + free( channel ); + channel = _wcsdup( _channel ); +} + +const DownloadedFile &DownloadedFile::operator =( const DownloadedFile © ) +{ + Reset(); + Init(); + + SetChannel( copy.channel ); + SetItem( copy.item ); + + bytesDownloaded = copy.bytesDownloaded; + totalSize = copy.totalSize; + publishDate = copy.publishDate; + downloadDate = copy.downloadDate; + + SetPath( copy.path ); + SetURL( copy.url ); + + return *this; +} \ No newline at end of file -- cgit