summaryrefslogtreecommitdiff
path: root/noncore/applets/wirelessapplet/networkinfo.h
authormickeyl <mickeyl>2002-08-04 19:06:53 (UTC)
committer mickeyl <mickeyl>2002-08-04 19:06:53 (UTC)
commitc2d27f3bc4fdf7407337a50c92dcb04ab4ce3525 (patch) (side-by-side diff)
tree3913529e3ce4ba338e030e922fe094470211e5b5 /noncore/applets/wirelessapplet/networkinfo.h
parent55019d84057f9c2bd2b2483da2c128a0a927e003 (diff)
downloadopie-c2d27f3bc4fdf7407337a50c92dcb04ab4ce3525.zip
opie-c2d27f3bc4fdf7407337a50c92dcb04ab4ce3525.tar.gz
opie-c2d27f3bc4fdf7407337a50c92dcb04ab4ce3525.tar.bz2
wireless monitoring applet added to opie-cvs
Diffstat (limited to 'noncore/applets/wirelessapplet/networkinfo.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/wirelessapplet/networkinfo.h126
1 files changed, 126 insertions, 0 deletions
diff --git a/noncore/applets/wirelessapplet/networkinfo.h b/noncore/applets/wirelessapplet/networkinfo.h
new file mode 100644
index 0000000..c5eb743
--- a/dev/null
+++ b/noncore/applets/wirelessapplet/networkinfo.h
@@ -0,0 +1,126 @@
+/**********************************************************************
+** MNetwork* classes
+**
+** Encapsulates network information
+**
+** Copyright (C) 2002, Michael Lauer
+** mickey@tm.informatik.uni-frankfurt.de
+** http://www.Vanille.de
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+**********************************************************************/
+
+#ifndef NETWORKINFO_H
+#define NETWORKINFO_H
+
+#include <qstring.h>
+#include <qdict.h>
+
+//---------------------------------------------------------------------------
+// class MNetworkInterface
+//
+
+class MNetworkInterface
+{
+public:
+
+ MNetworkInterface( const char* name = "eth0" );
+ virtual ~MNetworkInterface();
+
+ bool isLoopback() { return isLoopbackInterface; };
+ const QString& getName() { return name; };
+
+ virtual void updateStatistics();
+
+protected:
+
+ int fd;
+ const QString name;
+ bool isLoopbackInterface;
+ bool isIrda;
+ bool isTunnel;
+};
+
+//---------------------------------------------------------------------------
+// class MWirelessNetworkInterface
+//
+
+class MWirelessNetworkInterface : public MNetworkInterface
+{
+public:
+ MWirelessNetworkInterface( const char* name = "wlan0" );
+ virtual ~MWirelessNetworkInterface();
+
+ int noisePercent();
+ int qualityPercent();
+ int signalPercent();
+
+ QString APAddr;
+ QString essid;
+ QString mode;
+ QString nick;
+ QString rate;
+ double freq;
+ int channel;
+
+ virtual void updateStatistics();
+
+private:
+ int quality;
+ int signal;
+ int noise;
+
+ bool hasWirelessExtensions;
+};
+
+//---------------------------------------------------------------------------
+// class MNetwork
+//
+
+class MNetwork
+{
+public:
+ MNetwork();
+ virtual ~MNetwork();
+
+ typedef QDict<MNetworkInterface> InterfaceMap;
+ typedef QDictIterator<MNetworkInterface> InterfaceMapIterator;
+
+ bool hasInterfaces() const { return interfaces.isEmpty(); };
+ int numInterfaces() const { return interfaces.count(); };
+
+ MNetworkInterface* getFirstInterface();
+
+protected:
+ QString procfile;
+ InterfaceMap interfaces;
+
+ virtual MNetworkInterface* createInterface( const char* name ) const;
+
+private:
+ void enumerateInterfaces();
+};
+
+//---------------------------------------------------------------------------
+// class MWirelessNetwork
+//
+
+class MWirelessNetwork : public MNetwork
+{
+public:
+ MWirelessNetwork();
+ virtual ~MWirelessNetwork();
+
+protected:
+ virtual MNetworkInterface* createInterface( const char* name )
+ const;
+};
+
+#endif