File indexing completed on 2024-12-01 04:33:16

0001 /* This file is part of the KDE project
0002 
0003    Copyright (C) 2008 Lukas Appelhans <l.appelhans@gmx.de>
0004 
0005    This program is free software; you can redistribute it and/or
0006    modify it under the terms of the GNU General Public
0007    License as published by the Free Software Foundation; either
0008    version 2 of the License, or (at your option) any later version.
0009 */
0010 
0011 #ifndef TRANSFERGROUPSCHEDULER_H
0012 #define TRANSFERGROUPSCHEDULER_H
0013 
0014 #include "core/scheduler.h"
0015 
0016 /**
0017  * @brief TransferGroupScheduler class: what handle all the transfers in kget.
0018  *
0019  * This class handles all transfers of KGet, it is a modified Scheduler
0020  *
0021  */
0022 
0023 class TransferGroupScheduler : public Scheduler
0024 {
0025     Q_OBJECT
0026 public:
0027     explicit TransferGroupScheduler(QObject *parent = nullptr);
0028     ~TransferGroupScheduler() override;
0029 
0030     /**
0031      * Calculates the whole SpeedLimits
0032      */
0033     void calculateSpeedLimits();
0034 
0035     /**
0036      * Calculates the DownloadLimits
0037      */
0038     void calculateDownloadLimit();
0039 
0040     /**
0041      * Calculates the DownloadLimits
0042      */
0043     void calculateUploadLimit();
0044 
0045     /**
0046      * Sets a download limit to the scheduler
0047      * @param limit the download limit
0048      */
0049     void setDownloadLimit(int limit);
0050 
0051     /**
0052      * @return the transfergroupschedulers download limit
0053      */
0054     int downloadLimit() const
0055     {
0056         return m_downloadLimit;
0057     }
0058 
0059     /**
0060      * Sets a upload limit to the scheduler
0061      * @param limit the upload limit
0062      */
0063     void setUploadLimit(int limit);
0064 
0065     /**
0066      * @return the transfergroupschedulers upload limit
0067      */
0068     int uploadLimit() const
0069     {
0070         return m_uploadLimit;
0071     }
0072 
0073 private:
0074     int m_downloadLimit;
0075     int m_uploadLimit;
0076 };
0077 
0078 #endif