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

通讯编程

开发平台:

Visual C++

  1. /*
  2.  * A possible optimizer for wireless simulation
  3.  *
  4.  * No guarantee for making wireless simulation better
  5.  * Use it according to your scenario
  6.  *
  7.  * Ported from Sun's mobility code
  8.  */
  9. #ifndef __gridkeeper_h__
  10. #define __gridkeeper_h__
  11. #include "mobilenode.h"
  12. #define aligngrid(a,b) (((a)==(b))?((b)-1):((a)))
  13. class GridHandler : public Handler {
  14.  public:
  15.   GridHandler();
  16.   void handle(Event *);
  17. };
  18. class GridKeeper : public TclObject {
  19. public:
  20.   GridKeeper();
  21.   ~GridKeeper();
  22.   int command(int argc, const char*const* argv);
  23.   int get_neighbors(MobileNode *mn, MobileNode **output);
  24.   void new_moves(MobileNode *);
  25.   void dump();
  26.   static GridKeeper* instance() { return instance_;}
  27.   int size_;                     /* how many nodes are kept */
  28. protected:
  29.   MobileNode ***grid_;
  30.   int dim_x_;
  31.   int dim_y_;                    /* dimension */
  32.   GridHandler *gh_; 
  33. private:
  34.   static GridKeeper* instance_;
  35. };
  36. class MoveEvent : public Event {
  37. public:
  38.   MoveEvent() : enter_(0), leave_(0), grid_x_(-1), grid_y_(-1) {}
  39.   MobileNode **enter_; /* grid to enter */
  40.   MobileNode **leave_; /* grid to leave */
  41.   int grid_x_;
  42.   int grid_y_;
  43.   MobileNode *token_;    /* what node ?*/
  44. };
  45. #endif //gridkeeper_h