From c2d27f3bc4fdf7407337a50c92dcb04ab4ce3525 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Sun, 04 Aug 2002 19:06:53 +0000 Subject: wireless monitoring applet added to opie-cvs --- (limited to 'noncore/applets/wirelessapplet/networkinfo.h') 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 +#include + +//--------------------------------------------------------------------------- +// 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 InterfaceMap; + typedef QDictIterator 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 -- cgit v0.9.0.2