diff options
Diffstat (limited to 'src/DownloadAction.cc')
-rw-r--r-- | src/DownloadAction.cc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/DownloadAction.cc b/src/DownloadAction.cc new file mode 100644 index 0000000..17c882a --- /dev/null +++ b/src/DownloadAction.cc @@ -0,0 +1,48 @@ +/* + * vdr-vodcatcher - A plugin for the Linux Video Disk Recorder + * Copyright (c) 2007 - 2008 Tobias Grimm <vdr@e-tobi.net> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * $Id: DownloadAction.cc 7652 2008-08-05 21:37:57Z svntobi $ + * + */ + +#include "DownloadAction.h" + +#include "IDownloadPool.h" +#include "IDownloader.h" +#include "Download.h" +#include "Thread.h" +#include "Sleeper.h" + +using namespace std; + +DownloadAction::DownloadAction(IDownloadPool& downloadPool, IDownloader& downloader) : + downloadPool(downloadPool), downloader(downloader) +{ +} + +bool DownloadAction::Action() +{ + RefPtr<Download> download = downloadPool.GetNextDownload(); + if (download.get()) + { + downloader.PerformDownload(*download); + downloadPool.RemoveDownload(download); + } + + return true; +} |