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

00001 #ifndef D__TTMetric
00002 #define D__TTMetric
00003 
00004 #include <awds/UCastMetric.h>
00005 #include <map>
00006 
00007 namespace awds {
00008   class gea2mad;
00009   class TTMetric : public UCastMetric {
00010   public:
00011     struct NodeData {
00012       int tt;
00013       bool active;
00014       gea::AbsTime lastsend;
00015       
00016       NodeData():tt( RTopology::max_quality()),active(true),lastsend(0) {
00017       }
00018     };
00019     typedef std::map<NodeId,NodeData> TTData;
00020     TTData ttData;
00021     gea::Blocker blocker;
00022     gea::Duration interval;
00023 
00024     virtual void on_recv(BasePacket *p) {}
00025     virtual void on_wait(gea::Handle *h,gea::AbsTime t);
00026 
00027     bool debug;
00028     unsigned int packetSize;
00029 
00030     TTMetric(Routing *r);
00031     virtual ~TTMetric();
00032     void start();
00033     gea2mad *g2m;
00034     virtual int update();
00035     virtual RTopology::link_quality_t my_get_quality(NodeDescr &ndescr);
00036     virtual unsigned long my_calculate(RTopology::link_quality_t forward,RTopology::link_quality_t backward);
00037     virtual std::string get_values();
00038 
00039     virtual void addNode(NodeId &nodeId);
00040     virtual void begin_update();
00041     virtual void end_update();
00042   };
00043 }
00044 
00045 #endif // D__TTMetric
00046 /* This stuff is for emacs
00047  * Local variables:
00048  * mode:c++
00049  * c-basic-offset: 4
00050  * End:
00051  */

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