summaryrefslogtreecommitdiffstats
path: root/plugins/scheduler/bwscheduler.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/scheduler/bwscheduler.h')
-rw-r--r--plugins/scheduler/bwscheduler.h173
1 files changed, 0 insertions, 173 deletions
diff --git a/plugins/scheduler/bwscheduler.h b/plugins/scheduler/bwscheduler.h
deleted file mode 100644
index e752b1d..0000000
--- a/plugins/scheduler/bwscheduler.h
+++ /dev/null
@@ -1,173 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2006 by Ivan Vasić *
- * ivasic@gmail.com *
- * *
- * 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. *
- ***************************************************************************/
-#ifndef KTBWSCHEDULER_H
-#define KTBWSCHEDULER_H
-
-#include <interfaces/coreinterface.h>
-
-namespace kt
-{
-
- typedef enum bws_category
- {
- CAT_NORMAL,
- CAT_FIRST,
- CAT_SECOND,
- CAT_THIRD,
- CAT_OFF
- }ScheduleCategory;
-
- /**
- * @author Ivan Vasic <ivasic@gmail.com>
- * @brief This class represents bandwidth schedule for the week.
- * It simplifies usage of 2 dimensional schedule (array) and its transfer between classes.
- */
- class BWS
- {
- ///Schedule
- ScheduleCategory** m_schedule;
-
- ///Download categories
- int download[3];
- ///Upload categories
- int upload[3];
-
- public:
- BWS();
- BWS& operator=(const BWS& b);
- ~BWS();
-
- /**
- * @brief Resets this schedule.
- */
- void reset();
-
-
- /**
- * Gets download rate for category <i>cat</i>.
- * @param cat download category index
- * @return Download rate in KB/s
- */
- int getDownload(int cat);
-
- /**
- * Gets upload rate for category <i>cat</i>.
- * @param cat upload category index
- * @return upload rate in KB/s
- */
- int getUpload(int cat);
-
-
- /**
- * @brief Gets category for specified <i>day</i> and <i>hour</i>.
- * @param day Number of day in a week.
- * @param hour Hour of the day.
- * @return ScheduleCategory - category associated with that day/hour.
- */
- ScheduleCategory getCategory(int day, int hour);
-
-
- /**
- * @brief Sets download rate for a category.
- * @param cat Category to set rate to.
- * @param val Download rate to set to category in KB/s
- */
- void setDownload(int cat, int val);
-
- /**
- * @brief Sets upload rate for a category.
- * @param cat Category to set rate to.
- * @param val Upload rate to set to category in KB/s
- */
- void setUpload(int cat, int val);
-
-
- /**
- * @brief Sets category for specified <i>day</i>/<i>hour</i> combination.
- * @param day Day of the week.
- * @param hour Hour of the day.
- * @param val Category value.
- */
- void setCategory(int day, int hour, ScheduleCategory val);
-
- ///Prints schedule to LogViewer. Used only for debugging.
- void debug();
- };
-
-
- /**
- * @brief Bandwidth scheduler class.
- * @author Ivan Vasic <ivasic@gmail.com>
- * Singleton class. Used to keep bandwidth schedule and change download/upload rate as necessary.
- */
- class BWScheduler
- {
- public:
- inline static BWScheduler& instance()
- {
- static BWScheduler self;
- return self;
- }
- ~BWScheduler();
-
- /**
- * Triggers bandwidth limit changes (if needed).
- */
- void trigger();
-
- /**
- * Sets a new schedule.
- * @param sch - new BWS schedule.
- * @note Call trigger() after setting new schedule for changes to take effect.
- */
- void setSchedule(const BWS& sch);
-
- /**
- * Sets a pointer to CoreInterface.
- * Needed for getting global bandwidth limits.
- * @param core Pointer to CoreInterface
- */
- void setCoreInterface(CoreInterface* core);
-
- ///Pauses all torrents (TURN OFF category)
- void pauseAll();
-
- ///Loads schedule from HD
- void loadSchedule();
- ///Saves schedule to HD
- void saveSchedule();
-
- void setEnabled(bool theValue);
-
-
- protected:
- BWScheduler();
- BWScheduler(const BWScheduler&);
- BWScheduler& operator=(const BWScheduler&);
-
- BWS m_schedule;
- CoreInterface* m_core;
-
- bool m_enabled;
- };
-}
-
-#endif
-