/home/aherms/Code/git/awds-routing/src/awds/FloodHistory.h

00001 #ifndef _FLOODHISTOY_H__
00002 #define _FLOODHISTOY_H__
00003 
00004 #include <cstddef>
00005 #include <sys/types.h>
00006 
00007 #include <awds/NodeId.h>
00008 
00009 namespace awds{
00010 class FloodHistory {
00011     
00012 public: 
00013     
00014     struct Entry {
00015         NodeId id; 
00016         u_int16_t seq;
00017     };
00018     
00019 
00020     size_t size;
00021     size_t start, end;
00022     
00023     Entry *hist;
00024     
00025     FloodHistory() : size(0x80) {
00026         start = 0;
00027         end = 0;
00028         
00029         hist = new Entry[size];
00030     }
00031     
00032     
00033     ~FloodHistory() {
00034         delete hist;
00035     }
00036 
00037     void insert(const NodeId& id, u_int16_t seq) {
00038         end = ( end + 1 ) % size;
00039         hist[end].id = id;
00040         hist[end].seq = seq;
00041         if ( end == start) 
00042             start = (start + 1) % size;
00043     }
00044     
00045     void printHistoryOfNode(const NodeId& id);  
00046 
00047     bool contains(const NodeId& id, u_int16_t seq) const;
00048 
00049 
00050 };
00051 }
00052 
00053 #endif //FLOODHISTOY_H__
00054 /* This stuff is for emacs
00055  * Local variables:
00056  * mode:c++
00057  * c-basic-offset: 4
00058  * End:
00059  */

Generated on Tue Dec 11 17:58:47 2007 for AWDS by  doxygen 1.5.3-20071008