summaryrefslogtreecommitdiffstats
path: root/kget/transfer.h
diff options
context:
space:
mode:
Diffstat (limited to 'kget/transfer.h')
-rw-r--r--kget/transfer.h241
1 files changed, 241 insertions, 0 deletions
diff --git a/kget/transfer.h b/kget/transfer.h
new file mode 100644
index 00000000..845995d8
--- /dev/null
+++ b/kget/transfer.h
@@ -0,0 +1,241 @@
+/***************************************************************************
+* transfer.h
+* -------------------
+*
+* Revision : $Id$
+* begin : Tue Jan 29 2002
+* copyright : (C) 2002 by Patrick Charbonnier
+* : Based On Caitoo v.0.7.3 (c) 1998 - 2000, Matej Koss
+*
+****************************************************************************/
+
+/***************************************************************************
+ *
+ * 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.
+ *
+ ***************************************************************************/
+
+
+#ifndef _Transfer_h
+#define _Transfer_h
+
+#include <klistview.h>
+#include <qdatetime.h>
+#include <qguardedptr.h>
+#include <qmap.h>
+
+#include <kurl.h>
+#include <kio/jobclasses.h>
+
+#include "slave.h"
+
+class QTimer;
+
+class KSimpleConfig;
+class KAction;
+class KRadioAction;
+
+
+
+class DlgIndividual;
+class TransferList;
+
+
+class Transfer:public QObject, public KListViewItem
+{
+ Q_OBJECT
+public:
+ enum TransferMode { MD_QUEUED, MD_DELAYED, MD_SCHEDULED, MD_NONE, MD_NEW };
+
+ enum TransferStatus { ST_TRYING, ST_RUNNING, ST_STOPPED, ST_FINISHED };
+
+ enum TransferOperation {
+ OP_FINISHED, OP_RESUMED, OP_PAUSED, OP_REMOVED, OP_ABORTED,
+ OP_QUEUED, OP_SCHEDULED, OP_DELAYED, OP_CONNECTED
+ };
+
+
+
+ Transfer(TransferList * view, const KURL & _src, const KURL & _dest, const uint _id=0);
+ Transfer(TransferList * view, Transfer * after, const KURL & _src, const KURL & _dest, const uint _id=0);
+ ~Transfer();
+
+ void synchronousAbort();
+
+ bool read(KSimpleConfig * config, int id);
+ void write(KSimpleConfig * config, int id);
+ void logMessage(const QString & message);
+
+ bool keepDialogOpen() const;
+
+
+ QDateTime getStartTime()const
+ {
+ return startTime;
+ }
+ unsigned int getRemainingTime()const
+ {
+ return remainingTimeSec;
+ }
+
+ KIO::filesize_t getTotalSize()const
+ {
+ return totalSize;
+ }
+ KIO::filesize_t getProcessedSize()const
+ {
+ return processedSize;
+ }
+
+ KURL getSrc()const
+ {
+ return src;
+ }
+ KURL getDest()const
+ {
+ return dest;
+ }
+ int getPercent()const
+ {
+ return percent;
+ }
+
+ int getSpeed()const
+ {
+ return speed;
+ }
+ TransferStatus getStatus()const
+ {
+ return status;
+ }
+ int getMode()const
+ {
+ return mode;
+ }
+
+ void setMode(TransferMode _mode)
+ {
+ mode = _mode;
+ }
+ void setStatus(TransferStatus _status)
+ {
+ status = _status;
+ };
+ void setStartTime(QDateTime _startTime)
+ {
+ startTime = _startTime;
+ };
+ void setSpeed(unsigned long _speed);
+
+ // update methods
+ void updateAll();
+ bool updateStatus(int counter);
+
+ void showIndividual();
+ void UpdateRetry();
+
+
+ // actions
+ KAction *m_paResume, *m_paPause, *m_paDelete, *m_paRestart;
+ //KAction *m_paDock;
+ KRadioAction *m_paQueue, *m_paTimer, *m_paDelay;
+
+public:
+ void slotExecPause();
+ void slotExecResume();
+ void slotExecRemove();
+ void slotExecDelay();
+ void slotExecSchedule();
+ void slotExecConnected();
+ void slotExecError();
+ void slotExecBroken();
+ void slotCanResume(bool _bCanResume);
+ void slotSpeed(unsigned long);
+ void checkCache();
+
+ bool isVisible() const;
+ void maybeShow();
+
+ bool retryOnError();
+ bool retryOnBroken();
+
+public slots:
+ // operation methods
+ void slotResume();
+ void slotRequestPause();
+ void slotRequestRemove();
+ void slotRequestSchedule();
+ void slotRequestDelay();
+ void NotInCache();
+ void slotRequestRestart();
+ void slotUpdateActions();
+
+ void slotQueue();
+ void slotFinished();
+
+ void slotTotalSize(KIO::filesize_t bytes);
+ void slotProcessedSize(KIO::filesize_t);
+
+ void slotStartTime(const QDateTime &);
+ void slotStop(); // stop all transfers when going offline
+
+signals:
+ void statusChanged(Transfer *, int _operation);
+ void log(uint, const QString &, const QString &);
+
+private:
+ void init(const uint _id);
+
+ Slave *m_pSlave;
+
+ KURL src;
+ KURL dest;
+
+ /* the tranfer id number */
+ uint id;
+
+ static uint idcount;
+
+ // log
+ QString transferLog;
+
+ // schedule time
+ QDateTime startTime;
+
+ KIO::filesize_t totalSize;
+ KIO::filesize_t processedSize;
+ int percent;
+
+ int speed;
+ unsigned int remainingTimeSec;
+ QString remainingTime;
+
+ TransferStatus status;
+ TransferMode mode;
+
+ TransferStatus prevStatus;
+ TransferMode prevMode;
+
+ // how many times have we retried already
+ unsigned int retryCount;
+
+ bool canResume;
+
+ TransferList *view;
+
+ // individual download window
+ QGuardedPtr<DlgIndividual> dlgIndividual;
+
+};
+
+
+#endif // _Transfer_h