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_NETWORKCONFIGURATOR_H
00019 #define __INET_NETWORKCONFIGURATOR_H
00020
00021 #include <omnetpp.h>
00022 #include "INETDefs.h"
00023 #include "IPAddress.h"
00024
00025 class IInterfaceTable;
00026 class IRoutingTable;
00027
00028
00033 class INET_API NetworkConfigurator : public cSimpleModule
00034 {
00035 protected:
00036 struct NodeInfo {
00037 NodeInfo() {isIPNode=false;ift=NULL;rt=NULL;}
00038 bool isIPNode;
00039 IInterfaceTable *ift;
00040 IRoutingTable *rt;
00041 bool usesDefaultRoute;
00042 };
00043 typedef std::vector<NodeInfo> NodeInfoVector;
00044
00045 protected:
00046 virtual int numInitStages() const {return 3;}
00047 virtual void initialize(int stage);
00048 virtual void handleMessage(cMessage *msg);
00049
00050 virtual void extractTopology(cTopology& topo, NodeInfoVector& nodeInfo);
00051 virtual void assignAddresses(cTopology& topo, NodeInfoVector& nodeInfo);
00052 virtual void addPointToPointPeerRoutes(cTopology& topo, NodeInfoVector& nodeInfo);
00053 virtual void addDefaultRoutes(cTopology& topo, NodeInfoVector& nodeInfo);
00054 virtual void setPeersParameter(const char *submodName, cTopology& topo, NodeInfoVector& nodeInfo);
00055 virtual void fillRoutingTables(cTopology& topo, NodeInfoVector& nodeInfo);
00056
00057 virtual void setDisplayString(cTopology& topo, NodeInfoVector& nodeInfo);
00058 };
00059
00060 #endif
00061