neighborentry.h
上传用户:hzie11
上传日期:2013-10-07
资源大小:1487k
文件大小:4k
源码类别:

网络

开发平台:

C/C++

  1. /* This software was developed at the National Institute of Standards and
  2.  * Technology by employees of the Federal Government in the course of
  3.  * their official duties. Pursuant to title 17 Section 105 of the United
  4.  * States Code this software is not subject to copyright protection and
  5.  * is in the public domain.
  6.  * NIST assumes no responsibility whatsoever for its use by other parties,
  7.  * and makes no guarantees, expressed or implied, about its quality,
  8.  * reliability, or any other characteristic.
  9.  * <BR>
  10.  * We would appreciate acknowledgement if the software is used.
  11.  * <BR>
  12.  * NIST ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION AND
  13.  * DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING
  14.  * FROM THE USE OF THIS SOFTWARE.
  15.  * </PRE></P>
  16.  * @author  rouil
  17.  */
  18. #ifndef NEIGHBORENTRY_H
  19. #define NEIGHBORENTRY_H
  20. #include "scheduling/framemap.h"
  21. /** Data structure used to store Mac state information during scanning */
  22. struct sched_state_info {
  23.   struct state_info *state_info; 
  24.   FrameMap *map;
  25.   WimaxT1Timer  *t1timer;
  26.   WimaxT2Timer  *t2timer;
  27.   WimaxT6Timer  *t6timer;
  28.   WimaxT12Timer *t12timer;
  29.   WimaxT21Timer *t21timer;
  30.   WimaxLostDLMAPTimer *lostDLMAPtimer;
  31.   WimaxLostULMAPTimer *lostULMAPtimer;
  32.   WimaxT44Timer *t44timer;
  33. };
  34. /**
  35.  * Store information about a neighboring BS.
  36.  */
  37. class NeighborEntry {
  38.  public:
  39.   /** 
  40.    * Constructor
  41.    */
  42.   NeighborEntry (int id);
  43.   /**
  44.    * Destructor
  45.    */
  46.   ~NeighborEntry ();
  47.   /**
  48.    * Return the address of the neighbor of this entry
  49.    * @return the address of the neighbor of this entry
  50.    */
  51.   int getID ();
  52.   /**
  53.    * Set the neighbor advertisement message
  54.    * @param frame The advertisment message
  55.    */
  56.   void setNbrAdvMessage (mac802_16_nbr_adv_info *frame);
  57.   
  58.   /**
  59.    * Return the neighbor advertisement message
  60.    * @param frame The advertisment message
  61.    */
  62.   mac802_16_nbr_adv_info * getNbrAdvMessage ();
  63.   /**
  64.    * Set the DCD message received during scanning
  65.    * @param dcd the DCD message received
  66.    */
  67.   void setDCD (mac802_16_dcd_frame *frame);
  68.   /**
  69.    * Get the DCD message received during scanning
  70.    * @return the DCD message received
  71.    */
  72.   mac802_16_dcd_frame *getDCD ();  
  73.   /**
  74.    * Set the UCD message received during scanning
  75.    * @param dcd the DCD message received
  76.    */
  77.   void setUCD (mac802_16_ucd_frame *frame);
  78.   /**
  79.    * Get the DCD message received during scanning
  80.    * @return the DCD message received
  81.    */
  82.   mac802_16_ucd_frame *getUCD ();  
  83.   /**
  84.    * Set the UCD message received during scanning
  85.    * @param dcd the DCD message received
  86.    */
  87.   void setRangingRsp (mac802_16_rng_rsp_frame *frame);
  88.   /**
  89.    * Get the DCD message received during scanning
  90.    * @return the DCD message received
  91.    */
  92.   mac802_16_rng_rsp_frame *getRangingRsp ();  
  93.   /**
  94.    * Mark the neighbor as being detected
  95.    * @param detected indicate if the neighbor has been detected
  96.    */
  97.   void setDetected (bool detected);
  98.   /**
  99.    * Indicates the neighbor as being detected
  100.    * @return indication if the neighbor has been detected
  101.    */
  102.   bool isDetected ();
  103.   /**
  104.    * Set the MAC state associated with this neighbor
  105.    * @param state
  106.    */
  107.   //void setState (sched_state_info *state);
  108.   /**
  109.    * Get the MAC state associated with this neighbor
  110.    * @return the MAC state associated with this neighbor
  111.    */
  112.   sched_state_info * getState ();
  113.  private:
  114.   /**
  115.    * The MAC address of neighbor
  116.    */
  117.   int id_;
  118.   /**
  119.    * The neighbor info adv message
  120.    */
  121.   struct mac802_16_nbr_adv_info *nbr_adv_;
  122.   /**
  123.    * The DCD message received during scanning
  124.    */
  125.   mac802_16_dcd_frame *dcd_;
  126.   /**
  127.    * The DCD message received during scanning
  128.    */
  129.   mac802_16_ucd_frame *ucd_;
  130.   /** 
  131.    * The ranging response received during scanning
  132.    */
  133.   mac802_16_rng_rsp_frame *rng_rsp_;
  134.   /**
  135.    * Save the state
  136.    */
  137.   struct sched_state_info state_;
  138.   /**
  139.    * Indicate if the neighbor has been detected
  140.    */
  141.   bool detected_;
  142. };
  143.   
  144. #endif