ConnectivityProbeQuon.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 
00025 #ifndef __CONNECTIVITYPROBEQUON_H__
00026 #define __CONNECTIVITYPROBEQUON_H__
00027 
00028 #include <omnetpp.h>
00029 #include <NodeHandle.h>
00030 #include <QuonHelper.h>
00031 #include <Quon.h>
00032 #include <fstream>
00033 #include <sstream>
00034 #include "GlobalStatisticsAccess.h"
00035 
00036 class QuonTopologyNode
00037 {
00038     public:
00039         QuonTopologyNode(int moduleID);
00040         Quon* getModule() const;
00041 
00042         bool visited;
00043         int moduleID;
00044 };
00045 
00046 typedef std::map<OverlayKey, QuonTopologyNode> QuonTopology;
00047 
00048 class ConnectivityProbeQuon : public cSimpleModule
00049 {
00050     public:
00051         void initialize();
00052         void handleMessage(cMessage* msg);
00053         ~ConnectivityProbeQuon();
00054 
00055     private:
00056         std::fstream pltNetwork, pltData, pltVector;
00057         void extractTopology();
00058         void resetTopologyNodes();
00059         unsigned int getComponentSize(OverlayKey key);
00060 
00061         simtime_t probeIntervall;
00062         simtime_t plotIntervall;
00063         simtime_t startPlotTime;
00064         simtime_t plotPeriod;
00065         bool plotConnections;
00066         bool plotBindings;
00067         bool plotMissing;
00068         cMessage* probeTimer;
00069         cMessage* plotTimer;
00070         QuonTopology Topology;
00071         GlobalStatistics* globalStatistics;
00072 
00073         // statistics
00074         cOutVector cOV_NodeCount;
00075         cOutVector cOV_MaximumComponent;
00076         cOutVector cOV_MaxConnectivity;
00077         cOutVector cOV_ZeroMissingNeighbors;
00078         cOutVector cOV_AverageMissingNeighbors;
00079         cOutVector cOV_MaxMissingNeighbors;
00080         cOutVector cOV_AverageDrift;
00081 };
00082 
00083 #endif
Generated on Wed May 26 16:21:14 2010 for OverSim by  doxygen 1.6.3