00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _FLOOD_H_
00024 #define _FLOOD_H_
00025
00026 #include <SimpleNetwLayer.h>
00027 #include <list>
00028
00029
00047 class Flood : public SimpleNetwLayer
00048 {
00049 protected:
00051 unsigned long seqNum;
00052
00054 int defaultTtl;
00055
00057 bool plainFlooding;
00058
00059 class Bcast {
00060 public:
00061 unsigned long seqNum;
00062 int srcAddr;
00063 simtime_t delTime;
00064 public:
00065 Bcast(unsigned long n=0, int s=0, simtime_t d=0) :
00066 seqNum(n), srcAddr(s), delTime(d) {
00067 }
00068 };
00069
00070 typedef std::list<Bcast> cBroadcastList;
00071
00073 cBroadcastList bcMsgs;
00074
00079 unsigned int bcMaxEntries;
00080
00085 double bcDelTime;
00086
00087 public:
00088 Module_Class_Members( Flood, SimpleNetwLayer, 0 );
00089
00091 virtual void initialize(int);
00092 virtual void finish();
00093
00094 protected:
00096 virtual void handleUpperMsg(cMessage *);
00097
00099 virtual void handleLowerMsg(cMessage *);
00100
00102 virtual void handleSelfMsg(cMessage* msg) {};
00103
00105 bool notBroadcasted( NetwPkt* );
00106 };
00107
00108 #endif