00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _FLOOD_H_
00025 #define _FLOOD_H_
00026
00027 #include <BaseNetwLayer.h>
00028 #include <list>
00029
00030
00050 class Flood : public BaseNetwLayer
00051 {
00052 protected:
00054 unsigned long seqNum;
00055
00057 int defaultTtl;
00058
00060 bool plainFlooding;
00061
00062 class Bcast {
00063 public:
00064 unsigned long seqNum;
00065 int srcAddr;
00066 simtime_t delTime;
00067 public:
00068 Bcast(unsigned long n=0, int s=0, simtime_t d=0) :
00069 seqNum(n), srcAddr(s), delTime(d) {
00070 }
00071 };
00072
00073 typedef std::list<Bcast> cBroadcastList;
00074
00076 cBroadcastList bcMsgs;
00077
00082 unsigned int bcMaxEntries;
00083
00088 simtime_t bcDelTime;
00089
00090 public:
00091
00092
00094 virtual void initialize(int);
00095 virtual void finish();
00096
00097 protected:
00098
00099 long nbDataPacketsReceived;
00100 long nbDataPacketsSent;
00101 long nbDataPacketsForwarded;
00102 long nbHops;
00103
00105 virtual void handleUpperMsg(cMessage *);
00106
00108 virtual void handleLowerMsg(cMessage *);
00109
00111 virtual void handleSelfMsg(cMessage* msg) {};
00112
00114 bool notBroadcasted( NetwPkt* );
00115
00116
00117 NetwPkt* encapsMsg(cPacket*);
00118 };
00119
00120 #endif