Source: ktctool/ktctool.h
|
|
|
|
/***************************************************************************
ktctool.h - description
-------------------
begin : Fri Feb 1 2002
copyright : (C) 2002 by Vairo Raja
email : vairo@math.ut.ee
***************************************************************************/
/***************************************************************************
* *
* 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. *
* *
***************************************************************************/
#ifndef KTCTOOL_H
#define KTCTOOL_H
#ifdef HAVE_CONFIG_H
#include
#endif
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
/** for Listview class */
#include
#include
#include
#include
#include
#include
#include
/** QoS Tree objects */
class Folder : public QObject
{
Q_OBJECT
public:
Folder( Folder *parent, const QString &name );
~Folder()
{}
QString folderName() { return fName; }
protected:
QString fName;
};
/** Ktctool is the base class of the project */
class Ktctool : public KMainWindow
{
Q_OBJECT
protected:
/** setup functions */
void startUp();
void setupMenuBar();
void setupStatusBar();
void setupKtctoolWidget();
void setupKtctoolWidget2();
void setupConnect();
public:
/** construtor */
Ktctool(QWidget* parent=0, const char *name=0);
/** destructor */
~Ktctool();
void closeEvent (QCloseEvent *);
void addFilter(QString);
void addQdisc(QString);
void addClass(QString);
void setInfo(QString);
/** defines some processes */
KProcess addshaperqdisc;
KProcess addshaperclass;
KProcess addshaperfilter;
KProcess delshaperqdisc;
KProcess delshaperclass;
KProcess delshaperfilter;
KProcess showqdisc;
KProcess showclass;
KProcess showfilter;
KProcess showip;
KProcess tccommand;
KProcess tcexist; // if object exists already
KProcess editlog;
KProcess filteradd; // if filter was added
KProcess filteradd2; // if filter was added
class Tcobjects
{
public:
Tcobjects( QString& dev, QString& type, QString& id) { d=dev; t=type; i=id; }
Tcobjects( QString& dev, QString& type, QString& id, QString& info) { d=dev; t=type; i=id; inf=info; }
QString dev() const { return d; }
QString type() const { return t; }
QString id() const { return i; }
QString info() const { return inf; }
void setfolder(Folder *f1){ f = f1; } // remember parent when making QoS Tree
Folder *folder() { return f; }
Folder *f;
private:
QString d;
QString t;
QString i;
QString inf;
};
QPtrList listall;
QPtrList listinfo;
QPtrList subqdiscs;
QStrList devices;
QStrList listclasses;
const char *shaperdelinterfaceChoice;
public slots:
void slotHelp();
void slotExit();
void slotEnable();
void slotEnableFilter();
void slotEnableFilter1();
void slotEnableFilter2();
void slotLog();
void slotReset();
void startRefresh();
void slotmantc();
void slotmancbq();
void slotmanpfifo();
void slotmanpfifof();
void slotmanprio();
void slotmanred();
void slotmansfq();
void slotmantbf();
void links();
void addLog(KProcess &);
void tabChanged(QWidget *);
/** traffic shaper functions */
void trafficShaper();
void startshaperRules();
void deleteShaper();
void ingressShaper();
void delshaperRules();
void startdeleteShaper();
void shaperinterfaceActivated(int);
void shaperdelinterfaceActivated(int);
void shapermonitorinterfaceActivated(int);
void shaperfilterinterfaceActivated(int);
void shaperfilterrouteActivated(int);
void shaperfilteru32Activated(int);
void shaperfilterTCIActivated(int);
void shaperfilterpolactionActivated(int);
void shaperfilterIdActivated(int);
void dsmarkinterfaceActivated(int);
void pfifointerfaceActivated(int);
void pfifobfifoActivated(int);
void priointerfaceActivated(int);
void redinterfaceActivated(int);
void sfqinterfaceActivated(int);
void tbfinterfaceActivated(int);
void shaperQdisc();
void shaperClass();
void startClassChange();
void shaperfilterFw();
void shaperfilterRoute();
void shaperfilterU32();
void shaperfilterTCI();
void trafficFilter();
void startfilterShaper();
void startfilterRules();
void dsmarkShaper();
void startdsmarkQdisc();
void dsmarkQdisc();
void pfifoShaper();
void startpfifoQdisc();
void startpfifoQdiscChange();
void pfifoQdisc();
void prioShaper();
void startprioQdisc();
void startprioQdiscChange();
void prioQdisc();
void redShaper();
void startredQdisc();
void startredQdiscChange();
void redQdisc();
void sfqShaper();
void startsfqQdisc();
void sfqQdisc();
void tbfShaper();
void starttbfQdisc();
void starttbfQdiscChange();
void tbfQdisc();
void startingressQdisc();
void createIngress();
void trafficShaperMonitor();
void startqdiscMonitor();
void startclassMonitor();
void startfilterMonitor();
void startMonitorProcess();
void startclassShaper();
void shaperMonitor(KProcess *, char *, int);
void shaperCommand(KProcess *, char *, int);
void shaperExist(KProcess *, char *, int);
void filterExist(KProcess *, char *, int);
void startexistShaper(QString, QString, QString);
void shaperExistfinish();
void tcStatistics(); // checkboxes
void tcDetails();
void tcRaw();
void tcIngress2();
void setBounded();
void setIsolated();
void setdsmarkTc();
private:
QListBox *messageLog;
QListBox *shapermonBox;
QPopupMenu *file;
QPopupMenu *info;
QPopupMenu *help;
KMenuBar *menubar;
KStatusBar *statusbar;
QWidget *mainWidget;
QWidget *shaperLinks;
QTabWidget* TabWidget2;
QWidget* tab;
QTabWidget* tab_two;
QWidget* tab_three;
QWidget* tab_four;
QWidget* tab_five;
QWidget* tab_1;
QWidget* tab_2;
QWidget* tab_3;
QWidget* tab_4;
QWidget* tab_5;
QWidget* tab_6;
QWidget* tab_7;
QBoxLayout *top2;
QGridLayout *grid2;
QWidget *treeWidget;
QPushButton *btnfilter;
QStrList delobjects;
QString tcfilter;
QString tcaction;
QString tcexistid;
QString startfunction;
QComboBox *shaperinterface;
QComboBox *shapermoninterface;
QComboBox *shaperfilterinterface;
QComboBox *shaperfilterroute;
QComboBox *shaperfilteru32;
QComboBox *shaperfiltertcfall;
QComboBox *shaperfilterpolaction;
QComboBox *shaperfilterclassId;
QComboBox *shaperdelinterface;
QComboBox *dsmarkinterface;
QComboBox *pfifointerface;
QComboBox *pfifobfifo;
QComboBox *priointerface;
QComboBox *redinterface;
QComboBox *sfqinterface;
QComboBox *tbfinterface;
QCheckBox *tcs;
QCheckBox *tcd;
QCheckBox *tcr;
QCheckBox *tcingress;
QCheckBox *shaperclassBounded;
QCheckBox *shaperclassIsolated;
QCheckBox *dsmarkTcindex;
QLineEdit *shaperglobalBand;
QLineEdit *shaperrateBand;
QLineEdit *shaperqdiscHandle;
QLineEdit *shaperqdiscParent;
QLineEdit *shaperparentHandle;
QLineEdit *shaperclassAllot;
QLineEdit *shaperclassId;
QLineEdit *shaperclassWeight;
QLineEdit *shaperclassPrio;
QLineEdit *shaperclassMaxburst;
QLineEdit *shaperclassMinburst;
QLineEdit *shaperclassSplit;
QLineEdit *shaperclassDefmap;
QLineEdit *shaperAvpkt;
QLineEdit *shaperMpu;
QLineEdit *shaperCell;
QLineEdit *shaperEwma;
QLineEdit *shaperfilterprotocol;
QLineEdit *shaperfilterprio;
QLineEdit *shaperfilterhandle;
QLineEdit *shaperfilterroutenr;
QLineEdit *shaperfilterU32match;
QLineEdit *shaperfiltertchash;
QLineEdit *shaperfiltertcmask;
QLineEdit *shaperfiltertcshift;
QLineEdit *shaperfilterpolrate;
QLineEdit *shaperfilterpolburst;
QLineEdit *shaperfilterpolmtu;
QLineEdit *shaperfilterpolpeakrate;
QLineEdit *shaperfilterpolavrate;
QLineEdit *dsmarkqdiscHandle;
QLineEdit *dsmarkIndices;
QLineEdit *dsmarkDefaultIndex;
QLineEdit *pfifoqdiscHandle;
QLineEdit *pfifoqdiscParent;
QLineEdit *pfifoNumber;
QLineEdit *prioqdiscHandle;
QLineEdit *priobands;
QLineEdit *priomap;
QLineEdit *redqdiscHandle;
QLineEdit *redqdiscParent;
QLineEdit *redglobalBand;
QLineEdit *redMin;
QLineEdit *redMax;
QLineEdit *redAvpkt;
QLineEdit *redLimit;
QLineEdit *redBurst;
QLineEdit *redProbability;
QLineEdit *sfqqdiscHandle;
QLineEdit *sfqqdiscParent;
QLineEdit *sfqPerturb;
QLineEdit *sfqQuantum;
QLineEdit *tbfqdiscHandle;
QLineEdit *tbfqdiscParent;
QLineEdit *tbfRate;
QLineEdit *tbfLimit;
QLineEdit *tbfBurst;
QLineEdit *tbfPeakrate;
QLineEdit *tbfLatency;
QLineEdit *tbfMtu;
const char *shaperinterfaceChoice;
const char *shapermonitorinterfaceChoice;
const char *shaperfilterinterfaceChoice;
const char *shaperfilterrouteChoice;
const char *shaperfilteru32Choice;
const char *shaperfiltertcChoice;
const char *shaperfilteractionChoice;
const char *shaperfilterIdChoice;
const char *dsmarkinterfaceChoice;
const char *pfifointerfaceChoice;
const char *pfifobfifoChoice;
const char *priointerfaceChoice;
const char *redinterfaceChoice;
const char *sfqinterfaceChoice;
const char *tbfinterfaceChoice;
QString installdir; // directory where installed files are
uint tcdev; // device number
uint x; // used when starting
// uint xdelete; used when starting (startdeleteShaper 2x)
uint filtercount; // how many filters
uint filtercount2; // how many filters
int qdisc_exec;
int class_exec;
int tcs_exec;
int tcd_exec;
int tcr_exec;
int tcingress_exec;
int route_exec;
int u32_exec;
int tci_exec;
int bounded;
int isolated;
int dsmarktcindex;
};
/** QoS Tree objects */
class FolderListItem : public QListViewItem
{
public:
FolderListItem( QListView *parent, Folder *f );
FolderListItem( FolderListItem *parent, Folder *f );
void insertSubFolders( const QObjectList *lst );
QString makeShort( QString);
Folder *folder() { return myFolder; }
protected:
Folder *myFolder;
QPixmap bluep;
QPixmap redp;
QPixmap goldp;
};
/** QoS Tree window */
class ListViews : public QSplitter
{
Q_OBJECT
public:
ListViews( QWidget *parent = 0, const char *name = 0, Ktctool *ktctool2 = 0);
~ListViews()
{}
KProcess ffilter; // ingress filters
public slots:
void slotAddQdisccbq();
void slotAddQdiscdsmark();
void slotAddQdiscpfifo();
void slotAddQdiscprio();
void slotAddQdiscred();
void slotAddQdiscsfq();
void slotAddQdisctbf();
void slotAddQdiscingress();
void slotAddFilter();
void slotAddClass();
void slotChange();
void slotDelete();
void findfilter2(KProcess *, char*, int);
protected:
void initFolders(Folder *);
void setupFolders();
void findsub(QString *, Folder *, QString *);
void findfilter(Folder *, QString *);
QListView *folders;
QPopupMenu *menu;
Ktctool *ktctoolview;
QString info;
QStrList devices;
QString ingressdevice;
QPtrList lstFolders;
QPtrList listinfo2; // info from Ktctool
QPtrList subqdiscs2; // info from Ktctool
protected slots:
void slotRMB( QListViewItem*, const QPoint &, int );
};
#endif
| Generated by: root on dhcp-1745-109 on Sun May 25 16:54:23 2003, using kdoc 2.0a54. |