utilities/downloadmanager/inc/sequentialdownloadmanager.h
changeset 16 3c88a81ff781
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utilities/downloadmanager/inc/sequentialdownloadmanager.h	Fri Oct 15 17:30:59 2010 -0400
@@ -0,0 +1,75 @@
+/**
+   This file is part of CWRT package **
+
+   Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). **
+
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU (Lesser) General Public License as 
+   published by the Free Software Foundation, version 2.1 of the License. 
+   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 
+   (Lesser) General Public License for more details. You should have 
+   received a copy of the GNU (Lesser) General Public License along 
+   with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef SEQUENTIALDOWNLOADMANAGER_H
+#define SEQUENTIALDOWNLOADMANAGER_H
+
+#include "dmcommon.h"
+#include "dmpimpl.h"
+#include "downloadevent.h"
+#include <QObject>
+#include <QQueue>
+
+// forward declarations
+class ClientDownload;
+class QNetworkReply; 
+class SequentialDownloadManagerPrivate;
+
+// class declaration
+class SequentialDownloadManager : public QObject
+{
+    DM_DECLARE_PRIVATE(SequentialDownloadManager); // private implementation
+public:
+    SequentialDownloadManager();
+    virtual ~SequentialDownloadManager();
+    
+    // returns all the current downloads
+    QList<Download *>& currentDownloads();
+    // finds a download provided id if exists
+    Download* findDownload(int dlId);
+    // cancels all the downloads and removes from the list
+    void removeAll();
+    // cancels and removes the download from list
+    void removeOne(Download *dl);
+    // pauses all the downloads which are in progress
+    void pauseAll();
+    // resumes all the downloads which are paused
+    void resumeAll();
+    // Adds to the download list
+    void addToSequentialDownload(Download* dl);
+
+private:
+    // removes adownload from created download list to download queue for downloading
+    void addToDownloadQueue(Download* dl);
+    // adds downloads to completed list of downloads
+    void addToCompletedList(Download* dl);
+    // processes a download when download start fired
+    void process(int dlId);
+    // event handler
+    bool event(QEvent *event);
+    // starts the next download in downloadQueue
+    void startNext();
+    // pauses the download if it is the first one in the queue
+    void pauseDownload(int dlId);
+    // resumes the download if it is the first one in the queue
+    void resumeDownload(int dlId);
+    // cancels the download if it is the first one in the queue
+    void cancelDownload(int dlId);
+
+    friend class ClientDownload;
+};
+
+#endif