ConnectivityProbe.h

Go to the documentation of this file.
00001 //
00002 // Copyright (C) 2006 Institut fuer Telematik, Universitaet Karlsruhe (TH)
00003 //
00004 // This program is free software; you can redistribute it and/or
00005 // modify it under the terms of the GNU General Public License
00006 // as published by the Free Software Foundation; either version 2
00007 // of the License, or (at your option) any later version.
00008 //
00009 // This program is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 // GNU General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU General Public License
00015 // along with this program; if not, write to the Free Software
00016 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00017 //
00018 
00024 #ifndef __CONNECTIVITYPROBE_H__
00025 #define __CONNECTIVITYPROBE_H__
00026 
00027 #include <omnetpp.h>
00028 #include <NodeHandle.h>
00029 #include <VastDefs.h>
00030 //#include <NeighborsList.h>
00031 #include <Vast.h>
00032 #include <fstream>
00033 #include <sstream>
00034 #include "GlobalStatisticsAccess.h"
00035 
00036 //typedef std::set<NodeHandle> NodeSet;
00037 
00038 class VTopologyNode
00039 {
00040     public:
00041         VTopologyNode(int moduleID);
00042         Vast* getModule() const;
00043 
00044         bool visited;
00045         int moduleID;
00046 };
00047 
00048 typedef std::map<OverlayKey, VTopologyNode> VTopology;
00049 
00050 class ConnectivityProbe : public cSimpleModule
00051 {
00052     public:
00053         void initialize();
00054         void handleMessage(cMessage* msg);
00055         ~ConnectivityProbe();
00056 
00057     private:
00058         std::fstream pltNetwork, pltData, pltVector;
00059         void extractTopology();
00060         void resetTopologyNodes();
00061         unsigned int getComponentSize(OverlayKey key);
00062 
00063         simtime_t probeIntervall;
00064         simtime_t plotIntervall;
00065         bool plotConnections;
00066         bool plotMissing;
00067         cMessage* probeTimer;
00068         cMessage* plotTimer;
00069         VTopology Topology;
00070         GlobalStatistics* globalStatistics;
00071 
00072         // statistics
00073         cOutVector cOV_NodeCount;
00074         cOutVector cOV_MaximumComponent;
00075         cOutVector cOV_MaxConnectivity;
00076         cOutVector cOV_ZeroMissingNeighbors;
00077         cOutVector cOV_AverageMissingNeighbors;
00078         cOutVector cOV_MaxMissingNeighbors;
00079         cOutVector cOV_AverageDrift;
00080 };
00081 
00082 #endif
Generated on Wed May 26 16:21:14 2010 for OverSim by  doxygen 1.6.3