flood-agent.h
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:2k
源码类别:

通讯编程

开发平台:

Visual C++

  1. // Author: Satish Kumar, kkumar@isi.edu
  2. #ifndef flood_agent_h_
  3. #define flood_agent_h_
  4. #include <agent.h>
  5. #include <ip.h>
  6. #include <delay.h>
  7. #include <scheduler.h>
  8. #include <queue.h>
  9. #include <trace.h>
  10. #include <arp.h>
  11. #include <ll.h>
  12. #include <mac.h>
  13. #include <priqueue.h>
  14. #include <mobilenode.h>
  15. #include "tags.h"
  16. #include "landmark.h"
  17. typedef double Time;
  18. class QueryList {
  19. public:
  20.   QueryList() {
  21.     next_ = NULL;
  22.   }
  23.   nsaddr_t src_;
  24.   int obj_name_;
  25.   int origin_time_;
  26.   int num_hops_;
  27.   nsaddr_t last_hop_id_;
  28.   QueryList *next_;
  29. };
  30. class FloodAgent : public Agent {
  31. public:
  32.   FloodAgent();
  33.   virtual int command(int argc, const char * const * argv);
  34.   
  35. protected:
  36.   //  RoutingTable *table_;     // Routing Table
  37.   void startUp();           // Starts off the hierarchy construction protocol
  38.   int seqno_;               // Sequence number to advertise with...
  39.   int myaddr_;              // My address...
  40.   // Periodic advertisements stuff
  41.   void periodic_callback(Event *e, int level); // method to send periodic advts
  42.   
  43.   PriQueue *ll_queue;       // link level output queue
  44.   void recv(Packet *p, Handler *);
  45.   // Tracing stuff
  46.   void trace(char* fmt,...);       
  47.   Trace *tracetarget_;  // Trace target
  48.   // Pointer to global tag database
  49.   tags_database *tag_dbase_;
  50.   // Local tag list
  51.   compr_taglist *tag_list_;
  52.   // Method returns 1 if query seen before. Otherwise returns 0
  53.   // and adds query info to the list
  54.   QueryList *query_list_;
  55.   int search_queries_list(nsaddr_t src, int obj_name, int origin_time, int num_hops, nsaddr_t last_hop_id);
  56.   nsaddr_t get_next_hop(nsaddr_t src, int obj_name, int origin_time);
  57.   // Mobile node to which agent is attached; Used to get position information
  58.   MobileNode *node_;
  59.   // Debug flag
  60.   int debug_;   
  61.   // Tag cache info
  62.   int cache_;      // set to 1 to enable caching
  63.   TagCache *tag_cache_;
  64.   int num_cached_items_;
  65. };
  66. #endif