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

网络

开发平台:

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. #include "neighborentry.h"
  19. /** 
  20.  * Constructor
  21.  */
  22. NeighborEntry::NeighborEntry (int id) : nbr_adv_(0), dcd_(0), ucd_ (0), rng_rsp_(0)
  23. {
  24.   id_ = id;
  25.   memset (&state_, 0, sizeof (struct sched_state_info));
  26.   detected_ = false;
  27. }
  28. /**
  29.  * Destructor
  30.  */
  31. NeighborEntry::~NeighborEntry ()
  32. {
  33.   free (nbr_adv_);
  34.   free (dcd_);
  35.   free (ucd_);
  36.   free (rng_rsp_);
  37. }
  38. /**
  39.  * Return the address of the neighbor of this entry
  40.  * @return the address of the neighbor of this entry
  41.  */
  42. int NeighborEntry::getID ()
  43. {
  44.   return id_;
  45. }
  46. /**
  47.  * Set the neighbor advertisement message
  48.  * @param frame The advertisment message
  49.  */
  50. void NeighborEntry::setNbrAdvMessage (mac802_16_nbr_adv_info *frame)
  51. {
  52.   nbr_adv_ = frame;
  53. }
  54.   
  55. /**
  56.  * Return the neighbor advertisement message
  57.  * @param frame The advertisment message
  58.  */
  59. mac802_16_nbr_adv_info * NeighborEntry::getNbrAdvMessage ()
  60. {
  61.   return nbr_adv_;
  62. }
  63. /**
  64.  * Set the DCD message received during scanning
  65.  * @param dcd the DCD message received
  66.  */
  67. void NeighborEntry::setDCD (mac802_16_dcd_frame *frame)
  68. {
  69.   dcd_ = frame;
  70. }
  71. /**
  72.  * Get the DCD message received during scanning
  73.  * @return the DCD message received
  74.  */
  75. mac802_16_dcd_frame * NeighborEntry::getDCD ()
  76. {
  77.   return dcd_;
  78. }
  79. /**
  80.  * Set the UCD message received during scanning
  81.  * @param dcd the DCD message received
  82.  */
  83. void NeighborEntry::setUCD (mac802_16_ucd_frame *frame)
  84. {
  85.   ucd_ = frame;
  86. }
  87. /**
  88.  * Get the DCD message received during scanning
  89.  * @return the DCD message received
  90.  */
  91. mac802_16_ucd_frame * NeighborEntry::getUCD ()
  92. {
  93.   return ucd_;
  94. }
  95. /**
  96.  * Set the MAC state associated with this neighbor
  97.  * @param state
  98.  */
  99. /*void NeighborEntry::setState (sched_state_info *state)
  100. {
  101.   state_ = state;
  102. }*/
  103. /**
  104.  * Get the MAC state associated with this neighbor
  105.  * @return the MAC state associated with this neighbor
  106.  */
  107. sched_state_info * NeighborEntry::getState ()
  108. {
  109.   return &state_;
  110. }
  111. /**
  112.  * Mark the neighbor as being detected
  113.  * @param detected indicate if the neighbor has been detected
  114.  */
  115. void NeighborEntry::setDetected (bool detected)
  116. {
  117.   detected_ = detected;
  118. }
  119. /**
  120.  * Indicates the neighbor as being detected
  121.  * @return indication if the neighbor has been detected
  122.  */
  123. bool NeighborEntry::isDetected ()
  124. {
  125.   return detected_;
  126. }
  127. /**
  128.  * Set the UCD message received during scanning
  129.  * @param dcd the DCD message received
  130.  */
  131. void NeighborEntry::setRangingRsp (mac802_16_rng_rsp_frame *frame)
  132. {
  133.   rng_rsp_ = frame;
  134. }
  135. /**
  136.  * Get the DCD message received during scanning
  137.  * @return the DCD message received
  138.  */
  139. mac802_16_rng_rsp_frame *NeighborEntry::getRangingRsp ()
  140. {
  141.   return rng_rsp_;
  142. }