Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __INET_FLATNETWORKCONFIGURATOR_H
00019 #define __INET_FLATNETWORKCONFIGURATOR_H
00020
00021 #include <omnetpp.h>
00022 #include "INETDefs.h"
00023 #include "IPAddress.h"
00024
00025 class IInterfaceTable;
00026 class IRoutingTable;
00027
00028
00036 class INET_API FlatNetworkConfigurator : public cSimpleModule
00037 {
00038 protected:
00039 struct NodeInfo {
00040 NodeInfo() {isIPNode=false;ift=NULL;rt=NULL;usesDefaultRoute=false;}
00041 bool isIPNode;
00042 IInterfaceTable *ift;
00043 IRoutingTable *rt;
00044 IPAddress address;
00045 bool usesDefaultRoute;
00046 };
00047 typedef std::vector<NodeInfo> NodeInfoVector;
00048
00049 protected:
00050 virtual int numInitStages() const {return 3;}
00051 virtual void initialize(int stage);
00052 virtual void handleMessage(cMessage *msg);
00053
00054 virtual void extractTopology(cTopology& topo, NodeInfoVector& nodeInfo);
00055 virtual void assignAddresses(cTopology& topo, NodeInfoVector& nodeInfo);
00056 virtual void addDefaultRoutes(cTopology& topo, NodeInfoVector& nodeInfo);
00057 virtual void fillRoutingTables(cTopology& topo, NodeInfoVector& nodeInfo);
00058
00059 virtual void setDisplayString(cTopology& topo, NodeInfoVector& nodeInfo);
00060 };
00061
00062 #endif
00063